2017-09-26 73 views
2

我在JSONArray中有一個JSONArray,我想以這種方式應用JSONPath表達式,這樣我得到JSONObject或JSONArray作爲結果,當一個條件被satsified在內部的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[?(@.C.id == 10)]

現在,什麼樣的斷言是被用來獲取內的所有對象,其中B.id = 1 ?注意:B是JSON對象的數組。

回答

0

我有成功與$.A[?(@.B[?(@.id == 1)])]

但只使用Scala的加特林實現時: http://jsonpath.herokuapp.com/

的Jayway實施似乎完全忽視了內部過濾器,並根據他們的GitHub的issue,這是一個錯誤。

+0

你是對的,加特林它確實爲我工作。但是我正在使用Jayway庫,你確定它有一個限制嗎? –

+0

@VishalMahuli更新了答案,它看起來像一個錯誤。 –

相關問題