web-dev-qa-db-ja.com

JSONでキーを取得する

外部システムから次のJSON結果を取得します。

{
  "key1": "val1",
  "key2": "val2",
  "key3": "val3"
}

ここで、JSONPathを使用してすべてのキーとすべての値を表示したいと思います。そのため、結果としてkey1、key2、key3を取得するための何かを探しています。さらに、プロパティのインデックスを使用したいと思います。 g。 $....[2].key「key3」などを取得します。このようなことを行う方法はありますか?

9
Stefan

ティルダ~シンボルは、呼び出された値のキーを取得できます。したがって、あなたの例では、次のようなクエリがあります。

$.*~

これを返します:

[
  "key1",
  "key2",
  "key3"
]

別の例として、次のようなJSONドキュメントがある場合:

  {
  "key1": "val1",
  "key2": "val2",
  "key3": {
      "key31":"val31",
      "key32":"val32"
  }
}

このようなクエリ:

$.key3.*~

これを返します:

[
  "key31",
  "key32"
]

これらの例は JSONPath.com およびその他のシミュレーター/オンラインツールで機能しますが、機能しないものもあることに注意してください。これは、公式のドキュメントではなく、 JSONPath plus ドキュメントでtilda(〜)演算子について知ったことが原因である可能性があります。

9
Viktor