10.3.35 getJsonValue(JSONデータの名前に対応する値の取得)
形式
getJsonValue [-e 文字コード] 名前 [ファイルパス名]
機能
引数に指定されたJSONファイルから名前を検索し,完全一致したすべての名前に対応する値を出力します。
引数
- -e 文字コード
-
- Windows版
-
JSONファイルの文字コードを指定します。指定できる値は「SJIS」または「UTF8」です。このオプションを指定しない場合,文字コードをUTF8として扱います。
- UNIX版
-
JSONファイルの文字コードを環境変数LANGの値の形式で指定します。指定できる値は,「2.2.4 JP1/Advanced Shellを使用するときのエンコーディング」を参照してください。
このオプションを指定しない場合,JP1/Advanced Shellが動作する環境の環境変数LANGの値の形式で文字コードを指定したと仮定します。
例えば,AIXで文字コードUTF-8のJSONファイルを扱う場合,-eオプションに「JA_JP」または「JA_JP.UTF-8」を指定します。
- 名前
-
検索する名前を指定します。
- ファイルパス名
-
JSONファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。
標準出力への出力
JSONデータの名前に対応する値。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
-
一致する名前が見つからなかった場合,エラー終了します。
-
同じ名前のデータをネストしている場合,データの最も外側の名前に対応する値を出力します。
例(test.json):{"num":{"id":"0001","num":200}}
上記データに対してnumで検索すると,{"id":"0001","num":200}が出力されます。この場合,次のように指定して,データの内側の名前に対応する値(200)を出力できます。
getJsonValue num test.json | getJsonValue num
-
この部品では,adshmktempコマンドを使用して一時ファイルを作成します。そのため,部品実行中に強制終了要求を受けると,一時ファイルが残ることがあります。この場合は,手動で一時ファイルを削除してください。一時ファイルは,環境ファイルのTEMP_FILE_DIRパラメーターで定義したディレクトリに次の命名規則で作成されます。
getJsonValue_ジョブ識別子_プロセスID_時間情報_ファイル通し番号
使用例
JSONデータ(data.json) { "city": [ { "name":"Yokohama", "id":"0001", "value":{ "A":200, "B":100 } }, { "name":"Kawasaki", "id":"0002", "value":{ "A":100, "B":300 } } ] } getJsonValue name data.json # 以下の内容が出力される。 "Yokohama" "Kawasaki" getJsonValue -e SJIS value data.json # 以下の内容が出力される。 { "A":200, "B":100 } { "A":100, "B":300 }