9.4.8 adshparsejsonコマンド(JSONデータを解析する)
形式
adshparsejson 名前
機能
このコマンドはスクリプト開発部品の中で使用されるコマンドです。そのため,JSONデータを解析する場合は,スクリプト開発部品のJSON操作の部品の使用を推奨します。
標準入力から読み込んだJSONデータから名前を検索し,完全一致した名前に対応する値を改行区切りで標準出力に出力します。
- 【UNIX限定】
-
JP1/Advanced Shellが動作する環境の環境変数LANGの値と異なるエンコーディングのJSONデータを入力する場合,シェル変数ADSH_PARSER_LANGに値を設定しておくことで,adshparsejsonコマンドを実行する間はエンコーディングを統一して動作させることができます。シェル変数ADSH_PARSER_LANGには,環境変数LANGに指定可能な値を設定します。例えば,次の条件に当てはまる場合,エンコーディングを統一して動作させるためには,シェル変数ADSH_PARSER_LANGにJA_JP.UTF-8を設定してからadshparsejsonコマンドを実行します。
-
AIXで環境変数LANGにSJISを示す値(Ja_JP)が設定されている
-
エンコーディングがUTF-8のJSONデータを入力する
-
引数
- 名前
-
検索する名前を指定します。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1 |
エラー終了 |
注意事項
-
一致する項目が見つからなかった場合,エラー終了します。
-
同じ名前のデータをネストしている場合,データの最も外側の名前に対応する値を出力します。
例(test.json):{"num":{"id":"0001","num":200}}
上記データに対してnumで検索すると,{"id":"0001","num":200}が出力されます。この場合,次のように指定して,データの内側の名前に対応する値(200)を出力できます。
adshparsejson num < test.json | adshparsejson num
使用例
JSONデータ(data.json) { "city": [ { "name":"Yokohama", "id":"0001", "value":{ "A":200, "B":100 } }, { "name":"Kawasaki", "id":"0002", "value":{ "A":100, "B":300 } } ] } adshparsejson name < data.json # 以下の内容が出力される。 "Yokohama" "Kawasaki" adshparsejson value < data.json # 以下の内容が出力される。(ネストされているデータをそのまま出力する) { "A":200, "B":100 } { "A":100, "B":300 } adshparsejson B < data.json # 以下の内容が出力される。 100 300