英語からAIを使用して翻訳されました
この記事はAI技術を使用して翻訳されたことにご注意ください。正確性を維持するよう努めていますが、一部の詳細は元のテキストを完全に反映していない場合があります。情報に不明な点がある場合は、英語版を参照してください。
APIエラーのトラブルシューティング詳細を使用する際には、JSON Pathを使用してリクエストまたはレスポンスボディの特定の要素をJSON形式で収集することにより、活用したいデータポイントに対してより柔軟性を得ることができます。
JSON Pathは、JSON構造からデータをナビゲートし抽出するために使用される強力なクエリ言語です。ただし、ボディ要素への適用においては、特定のJSON Path演算子の使用に制限を設けています。この記事では、制限された演算子セットを使用してJSON Pathを利用する方法を説明します。
利用可能な演算子
以下は利用可能なJSON Path演算子のリストです:
演算子 | 説明 |
.<name> | ドット表記の子要素:ドット表記を使用してオブジェクトの子要素にアクセスします。 |
['<name>'] | ブラケット表記の子要素:ブラケット表記を使用して子要素にアクセスします。 |
[<number>] |
配列インデックス:配列インデックスを使用します。 |
知っておくべきこと:配列は広く使用されているため、配列インデックス演算子をマスターすることが重要です。たとえば、GraphQLは配列を使用してエラーやデータを返します(以下の「例」を参照)。
制限
- ルート演算子$は必要ありません:クエリするルート要素をオプションで指定できますが、これは必須ではありません。
- 配列内の複数の名前を持つ複数の要素にアクセスすることはできません。
- 配列内の複数のインデックスを持つ複数の要素にアクセスすることはできません。
利用できない演算子:フィルター式、配列スライス、深いスキャン、現在のノード、ワイルドカード。
さらに、JSON Path関数やフィルター演算子を使用することは許可されていません。
利用可能な演算子とその使用法を理解することで、提供された制限の中でもJSON構造からデータを効果的にナビゲートし抽出することができます。
例
以下の例でこれらの演算子をどのように使用できるかを見てみましょう:
{ "errors": [ { "message": "アカウントのサインインが不正確であるか、アカウントが一時的に無効になっています。しばらく待ってから再試行してください。", "extensions": { "category": "graphql-authentication" }, "locations": [ { "line": 2, "column": 3 } ], "path": [ "generateCustomerToken" ], "code": 10005 } ], "data": { "generateCustomerToken": null, "emailAddressCheck": "valid", “emailAddress”: “bob@contentsquare.com” } }
JsonPath | ステータス | 返された結果 |
errors[0].message | ✅ | “アカウントのサインインが不正確であるか、アカウントが一時的に無効になっています。しばらく待ってから再試行してください。” |
errors[0].extensions.category | ✅ | “graphql-authentication” |
data.emailAddressCheck | ✅ | “valid” |
data[“emailAddressCheck”] | ✅ | “valid” |
data.emailAddress | ✅ | “name@contentsquare.com” |
errors | ❌ | “N/A” (errorsは配列であり、文字列値のみが返されることができます) |
errors.message | ❌ | “N/A” (“errors”は配列です) |
data[0] | ❌ | “N/A” (“data”要素は配列ではありません) |