layout.skip_to_main_content
✍️ JSON PATHの記載方法

JSON PATHの記載方法について説明します。

Yoom 運営事務局 avatar
対応者:Yoom 運営事務局
一週間前以上前にアップデートされました

概要

アプリオペレーションを用いたAPIのリクエスト結果から、JSON PATHを用いてアウトプットを取得することが可能です。その際のJSON PATHの記載方法についてご紹介します。

リクエスト結果の例(JSONの例)

{
"firstName": "John",
"lastName": "doe",
"age": 26,
"address": {
"streetAddress": "naist street",
"city": "Nara",
"postalCode": "630-0192"
},
"phoneNumbers": [
{
"type": "iPhone",
"number": "0123-4567-8888"
},
{
"type": "home",
"number": "0123-4567-8910"
}
],
"備考": [
{
"type": "DROP_DOWN",
"value": "男性"
},
{
"type": "SINGLE_LINE_TEXT",
"value": "既婚者"
},
{
"type": "SINGLE_LINE_TEXT",
"value": "中途社員"
}
]
}

JSON形式のテキストについて

アプリオペレーションで実行したAPIリクエストの結果は上記のようなJSON形式というテキスト構文で表示されます。

JSON形式のテキストは階層構造で記載されています。

例えば上記の例の場合、「address」という項目の下の階層に「streetAddress」「city」「postalCode」という項目が格納されている形となります。

また、[ ]の中には同様の形式の値が複数記載されるようになっています。

例えば上記の例の場合、「phoneNumbers」という項目の下の階層に、下記の2つの項目が格納されています。

{ "type"  : "iPhone", "number": "0123-4567-8888"}

{ "type"  : "home", "number": "0123-4567-8910"}

JSON PATHの基本構文

JSON PATHは上記の階層構造を順番に指定していく形で記載を行います。

  • 「$」が先頭を表します。(Yoomでは省略が可能です。)

  • 「.」で項目をつないでいきます。(項目が日本語の場合はシングルクォーテーション「'●●'」と囲む必要があります)”

  • 「[ ]」の中を指定する場合、「[3]」といった形で何番目の値なのかを指定します。(その際、1番目の値は0となります。)

  • 「*」は全てを表します。

  • 「:」は以降の値を取得できます。「[1:3]」といった形で2番目~4番目の値を取得します。「[1:]」といった形であれば、2番目以降の値をすべて取得します。

例えば、上記のリクエスト結果の例で、「firstName」に含まれる「John」という値を取得したい場合は、下記の様にJSON PATHを記載します。

$.firstName

または

firstName

また、例えば「address」の中の「city」に含まれる「Nara」という値を取得したい場合は、下記の様にJSON PATHを記載します。

$.address.city

または

address.city

また、例えば「phoneNumbers」の中で一番最初の項目から、「type」に含まれる「iPhone」という値を取得したい場合は、下記の様にJSON PATHを記載します。

$.phoneNumbers[0].type

または

phoneNumbers[0].type

また、例えば「phoneNumbers」の中の全ての項目で、「type」に含まれる値を取得したい場合は、下記の様にJSON PATHを記載します。

この場合の取得結果は「iPhone,home」となります。

$.phoneNumbers[*].type

または

phoneNumbers[*].type

JSON PATHの構文例

JSON PATHの例

取得結果

説明

$.address.postalCode

630-0192

階層を上から順に指定しています。

$.phoneNumbers[1].type

home

phoneNumbers内で2番目の項目を指定しています。

$.address.*

naist street,Nara,630-0192

address内の全ての項目の値を取得します。

$..type

iPhone,home

..と記載することでtypeという項目の値を全て取得します。

$.phoneNumbers[-1].type

home

[-1]とすることで[ ]内の最後の項目を指定することができます。

$.'備考'[0].value

男性

日本語の場合はシングルクォーテーション「'●●'」で囲む必要があります。また備考内で1番目の項目を指定しています。

$.'備考'[1:].value

既婚者,中途社員

[●:△]と指定することで●~△までの値を取得することができます。△がない場合には、●以降の値をすべて取得します。

$.phoneNumbers[?(@.type == 'home')].number

0123-4567-8910

[ ]内で、任意の項目を検索することができます。

関連記事

関連キーワード

操作,JSON,JSONPATH,アウトプット

こちらの回答で解決しましたか?