JSONパス - Cloud

Talend Cloud API Testerユーザーガイド

Version
Cloud
Language
日本語
Product
Talend Cloud
Module
Talend API Tester
Content
ジョブデザインと開発 > Testing APIs
Last publication date
2024-03-27
このセクションでは、Talend Cloud API Testerで使用できるJSONパス式について説明します。

詳細は、JSONPath - XPath for JSONを参照してください。

また、JSON Path Online Evaluatorを使用することもできます。基になる実装はTalend Cloud API Testerで使用されているものとは異なる場合があるため、結果は同じになるとは限りません。

JSONペイロードの使用に役立つヒントを以下に示します:

  • ドル記号$は、JSONコンテンツのルートオブジェクトを識別します。
  • ドット記号.は、オブジェクトの属性を取得したり、ツリー内を深く移動したりするために使用します。
  • 角括弧[]は、配列をターゲットとし、特定のエレメントまたはスライスを選択できるようにします。
  • ダブルドット..は、名前に基づいてすべての属性を再帰的に収集できます。

以下に示すように、Talend Cloud API Testerの現在の実装は主に参照されるとおりですが、いくつかの点で異なります。

JSONパス式のサンプル

このセクションでは、以下のサンプルJSONファイルについて式と結果を示します。

{
  "store": {
    "book": [
        {
          "category": "reference",
          "author": "Nigel Rees",
          "title": "Sayings of the Century",
          "price": 8.95
        },
        {
          "category": "fiction",
          "author": "Evelyn Waugh",
          "title": "Sword of Honour",
          "price": 12.99
        },
        {
          "category": "fiction",
          "author": "Herman Melville",
          "title": "Moby Dick",
          "isbn": "0-553-21311-3",
          "price": 8.99
        },
        {
          "category": "fiction",
          "author": "J. R. R. Tolkien",
          "title": "The Lord of the Rings",
          "isbn": "0-395-19395-8",
          "price": 22.99
        }
      ],
      "bicycle": {
        "color": "red",
        "price": 19.95
    }
  }
}

以下の表は、いくつかのサンプル式とその結果を示しています。

$.store.bicycle.color 自転車の色属性の値(red)。
$.store.book[0] storeの最初のbookノード

$.store.book[1:3]

$.store.book[1,2]

storeの2番目と3番目のbookノードの配列
$.store.book[-1:] storeの最後のbookノードを含む配列
$.store.book[:2] storeの1番目と2番目のbookノードの配列
$.store.book[1:4:2].author storeの2番目と4番目のbookノードの著者の配列(["Evelyn Waugh","J. R. R. Tolkien"])
$.store.book[1].* 2冊目の本のすべての属性の値の配列(["fiction","Evelyn Waugh","Sword of Honour",12.99])
$.store..price storeノードのすべての属性priceの値の配列(書籍と自転車の価格)[8.95,12.99,8.99,22.99,19.95])
$.store.book.author bookノードのすべての属性authorの値の配列(つまり["Nigel Rees","Evelyn Waugh","Herman Melville","J. R. R. Tolkien"])
$.store.book[?(@.isbn)] 属性isbnを持つ書籍の配列(最後の2冊)
$.store.book[?(@.price<10)] 価格が10未満の書籍の配列
$.. 再帰的にルートノードのすべての子ノードの配列
$..category Categoryノードのすべての値の配列(つまり["reference","fiction","fiction","fiction"])
$..category[(@.length-1)] 最後のCategoryノードの値

Talend Cloud API Testerが基準と異なる場合

スター演算子

参照 Talend Cloud API Tester
$.store.book[*].author ストア内のすべての書籍の著者を含む配列 空の配列を返し、代わりに$.store.book.authorを使用

ダブルドット演算子

$..bookは、bookノードが配列であるため、配列を含む配列を返すように、すべてのbookノードの配列として解釈されます:

[
  [
          { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 },
          { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 },
          { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 },
          { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 }
  ]
]

その後、次の式は異なる方法で計算されます:

参照 Talend Cloud API Tester
$..book[0] 最初のbookノードを含む配列 配列の最初のエレメント、つまりすべてのブックを含む配列を言います。
$..book[-1:] 最後の本を含む配列 そのままではサポートされておらず、($..book[0][-1:])を使って動作
$..book[(@.length-1)] 最後の本を含む配列 そのままではサポートされておらず、($..book[0][(@.length-1)])を使って動作
$..book[0,1] 1冊目と2冊目の本を含む配列 そのままではサポートされておらず、($..book[0][0,1])を使って動作
$..book[:2] 3冊目の本を含む配列 そのままではサポートされておらず、($..book[0][:2])を使って動作