2017-04-10 10 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が「byId」セクションで

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

クエリで0より大きい「リスト」内のすべてのポイントを得ることができ、我々はすべてのリストを取得することができますクエリしかし

$.byId.* 

とポイント、xはjsonpathクエリ構文を使用して0より大きい「byId」セクション内のすべてのポイントを取得する方法はありますか?

答えて

0

ターンは非常に簡単で、ほとんどの場所が示す例ではありません。上記の質問については、答えはちょうど

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

明らかにワイルドカードの必要はありません。

関連する問題