2016-12-02 72 views
2

我不知道是否可以過濾子級別的複雜對象(不是簡單的字符串),並檢索那些子節點與預測匹配的父節點。Jayway是否支持兒童級過濾器,返回父節點?

從Jayway的github項目中獲取書店示例:https://github.com/jayway/JsonPath#path-examples

如果我要改變「作者」到更復雜的物體,像以下:

"authors": [ 
    { 
     "firstName": "Nigel", 
     "lastName": "Rees" 
    }, 
    { 
     "firstName": "Evelyn", 
     "lastName": "Waugh" 
    } 
    ] 

就這樣,我怎麼能找回「所有書籍與沃的」最後的名字寫有人那'「 ?

我試圖玩Json Evaluator(http://jsonpath.herokuapp.com/)使用類似$.store.book[?(@.authors[?(@.lastName == 'Waugh')])] ,但它似乎像過濾器不起作用。我猜Jayway不允許嵌套謂詞。如果是這樣的話,會不會有解決方法?

此外,如果有任何其他JsonPath的Java實現可以幫助,我很想學習它。

預先感謝您。

回答

2

看起來像沒有提供父數組(即作者)的索引值就無法實現。我知道它可能無法完全解決問題。我只是想在另一個數組內部有數組時確認限制。

$.store.book[?(@.authors[0].lastName == 'Waugh')] 
+0

謝謝您的輸入。是的,我以循環的方式結束了我需要的外層節點。和你一樣,我想知道這是否是Jayway JsonPath的限制。 –

+0

好。如果有幫助請接受答案。 – notionquest