2017-09-26 15 views
2

JSONArrayをJSONArray内に持っているので、条件に合致したときにJSONObjectまたはJSONArrayを取得するようにJSONPath式を適用したい内側のJSONArrayに配置します。json-path:別の配列内の配列の子をフィルタリングする

例:

{ 
    "A": [ 
    { 
     "B": [ 
     { 
      "id": 1 
     }, 
     { 
      "id": 2 
     }, 
     { 
      "id": 3 
     } 
     ], 
     "C": { 
     "id": 10, 
     "name": "PQR" 
     }, 
     "id": 25, 
     "name": "XYZ" 
    }, 
    { 
     "B": [ 
     { 
      "id": 4 
     }, 
     { 
      "id": 5 
     }, 
     { 
      "id": 6 
     } 
     ], 
     "C": { 
     "id": 15, 
     "name": "PQR" 
     }, 
     "id": 20, 
     "name": "XYZ" 
    } 
    ] 
} 

私はC.id = 10 Aのすべての要素をしたい場合は、私が使用します。$.A[?(@.C.id == 10)]

は今、どのような述語はB.id = 1 A、内のすべてのオブジェクトを取得するために使用されます?注:BはJSONオブジェクトの配列です。

答えて

0

私は$.A[?(@.B[?(@.id == 1)])]

で成功を収めたが、Scalaのガトリング実装を使用している場合にのみ: http://jsonpath.herokuapp.com/

Jaywayの実装では、完全に内部フィルタを無視するようで、彼らはGitHub上issueによると、それはバグです。

+0

あなたはそうです、ガトリングで私のために働いた。しかし、私はジェイウェイの図書館を使っています。本当にその制限はありますか? –

+0

@VishalMahuliが答えを更新しました。これはバグのようです。 –

関連する問題