web-dev-qa-db-ja.com

JSONPATHを使用してJSON配列ファイルを解析する

これをJSONPathで解析したい:

[
  [50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4],
  [50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]
]

お手伝いできますか?

19
Kheiri Selmi

オブジェクトが次の場合:

[
  [50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4],
  [50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]
]

次に"$[0]"が返されます:

[50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4]

そして"$[1]"は以下を返します:

[50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]

2レベルの深さでそれを行うこともできます。 "$[0][4]"は次を返します:

205

配列の要素を"$[*]"のリストに抽出して、2つの要素のリストを返すこともできます。最初の存在:

[50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4]

そして二番目の存在:

[50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]
36
ArjunShankar

DefiantJSを使用すると、XPath構文でJSON構造を検索できます。このライブラリは、検索機能を使用してグローバルオブジェクトJSONを拡張します。

このシナリオでは、次のように書くことができます。

var data = [
  [50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4],
  [50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]
],
search = JSON.search( data, '//*/*/*' );

このフィドルをチェックしてください。 http://jsfiddle.net/hbi99/5NfeM/

0
Hakan Bilgin

これは私のために働く

JsonPath.with(jsonResponse).param("name", "getName").get("findAll { a -> a.name == name  }")
0