2017-04-10 50 views
0

JSON路徑語法是否提供了一種將過濾器應用於通配符(*)運算符選擇的所有對象的方法?帶過濾器的json路徑通配符

例如,在以下數據中,「byId」和「list」包含剛建立不同的相同數據。

{ 
    "list": [ 
    {"id": "a", "x": 1, "y": 2}, 
    {"id": "b", "x": 1, "y": 3}, 
    {"id": "c", "x": 0, "y": 4} 
    ], 
    "byId": { 
     "a": { 
     "x": 1, 
     "y": 2 
     }, 
     "b": { 
     "x": 1, 
     "y": 3 
     }, 
     "c": { 
     "x": 0, 
     "y": 4 
     } 
    } 
} 

我們可以得到所有的點在「名單」,其中x是大於0與查詢

$.list[?(@.x > 0)] 

在「byId」一節中,我們可以得到的所有列表與查詢

$.byId.* 

不過分,有沒有辦法讓所有的點「byId」部分,其中x是大於0使用jsonpath查詢語法?

回答

0

打開它是非常簡單的,而不是大多數地方顯示的例子。對於上述問題,答案只是

$.byId[?(@.x>0)] 

顯然不需要通配符。