2016-11-04 4 views
1

JSONpathを使用してJSONオブジェクトを照会しようとしています。論理||または& &オペレータが動作しています。しかし、私が述語をグループ化しようとすると、論理||または& &操作では動作していないようです。 SourceJayway実装を使用したJSONpathでの述語のグループ化

など。

$..[?(@.book=='fiction' && @.store=='online')] 

など。

$..[?(@.store=='online' || @.store=='offline') && (@.NER=='observation')] 

2番目の方法は機能しません。エラーがどこにあるか、まだサポートされていない機能に関するポインタ

答えて

2

?すべての条件をカバーする必要があります。全体的に丸みを帯びたブラケットが欠けている。

正しいパスは:複数の条件付き

{ 
    "store": { 
    "book": [ 
     { 
     "category": "fiction", 
     "author": "Nigel Rees", 
     "title": "Sayings of the Century", 
     "price": 8.95 
     }, 
     { 
     "category": "fiction", 
     "author": "Nigel Rees", 
     "title": "Sword of Honour", 
     "price": 12.99 
     }, 
     { 
     "category": "fiction", 
     "author": "Herman Melville", 
     "title": "Moby Dick", 
     "isbn": "0-553-21311-3", 
     "price": 8.99 
     }, 
     { 
     "category": "fiction", 
     "author": "J. R. R. Tolkien", 
     "title": "The Lord of the Rings", 
     "isbn": "0-395-19395-8", 
     "price": 22.99 
     } 
    ] 
    } 
} 

パス:

$..[?((@.category=='fiction' || @.author=='Nigel Rees') && (@.price < 10))] 
$..[?((@.store=='online' || @.store=='offline') && (@.NER=='observation'))] 

Iはhttp://jsonpath.com/

サンプルJSONに異なる例でそれを確認しました結果:

'0' ... 
    'category' => "fiction" 
    'author' => "Nigel Rees" 
    'title' => "Sayings of the Century" 
    'price' => "8.95" 
'1' ... 
    'category' => "fiction" 
    'author' => "Herman Melville" 
    'title' => "Moby Dick" 
    'isbn' => "0-553-21311-3" 
    'price' => "8.99" 
関連する問題