質問
JSONファイルのデータから、特定のKeyの値を抽出する方法を教えてください。
<実施したい内容>
以下データ形式のJSONファイルからanalyzeResult.contentの文字列を変数「content」に代入したいです。
{
"status": "succeeded",
"createdDateTime": "2024-11-19T07:38:39Z",
"lastUpdatedDateTime": "2024-11-19T07:38:41Z",
"analyzeResult": {
"apiVersion": "2024-07-31-preview",
"modelId": "prebuilt-layout",
"stringIndexType": "textElements",
"content": "【抽出したい部分】",
"pages": [
~~~
回答
1行の可変長データとしてJSONファイルを読み取り、変数Mapper内で正規表現置換することで、目的のKeyの値である「analyzeResult.content」の値を取得して変数へ代入することが可能です。
なお、前提条件としてJSONデータが以下の2点に合致している必要があります。
・JSONファイル内にAnalyzeResult.contentが1回のみ出現する。
・AnalyzeResult.contentの値に「"」が存在しない。
■スクリプト作成手順
- メイン - データ形式にて可変長読み取りフォーマット定義を作成する。
- スクリプト内に可変長ファイル読み取り処理を配置する。
ファイル:ストレージに保存されているJSONファイルを指定する。
デリミタモード:読み取り対象となるJSONファイルに含まれない文字を指定する。
(今回は「0x00」としています)
フォーマット:データ形式で作成した可変長読み取りフォーマット定義を選択する。
「可変長ウィザードの起動」をクリックする。
構造定義を右クリックし、レコードを追加する。
レコードを右クリックし、フィールドを追加する。
フィールドを列一覧の列にドラッグ&ドロップする。 - 変数代入処理を配置
- スクリプトのプロセスフローを以下の順で引く。
Start→可変長ファイル読み取り処理→変数代入→End - 変数Mapperを開く
- 正規表現置換ロジックを配置する
置換前文字列(正規表現パターン)に以下を入力する。^.*("analyzeResult":)(.*?"content":)(".*?").*$
置換後文字列に「$3」を入力する。 - 両側トリムロジックを配置する。
デフォルトでチェックされている項目のチェックを外し、その他のトリム文字に「"」を入力する。 - 入力元の可変長読み取り処理のcolumn→正規表現置換ロジック→両側トリムロジック→出力先のスクリプト変数「content」の順で結ぶ
コメント
0件のコメント
記事コメントは受け付けていません。