JSOnPath(XPath for JSON)解析JSONチュートリアル
2654 ワード
1.紹介
xmlドキュメントでのXPathの位置付けと同様に、JsonPath式は通常、パス取得またはJsonの設定に使用されます.その式は、$などの「dot-notation」および「bracket-notation」の形式を受け入れることができる.store.book[0].title、$[‘store’][‘book’][0][‘title’]
JsonPathは、所与のJSONドキュメントの一部を抽出するための簡単な方法です.JsonPathにはJavascript,Python,PHP,Javaなどのプログラミング言語がたくさんあります.JsonPathが提供するjson解析は非常に強力で、正規表現のような文法を提供し、基本的にあなたが得たいjsonの内容をすべて満たすことができます.
githubには次のようなアプリケーションがあります.https://github.com/json-path/JsonPath
2.オペレータ
アイコン
説明
$
クエリーのルートノードオブジェクト.jsonデータを表すために使用されます.配列またはオブジェクトです.
@
フィルタブレークスルー(filter predicate)で処理される現在のノードオブジェクト(javaのthisフィールドと同様)
*
ワイルドカード、名前または数値を表すことができます
..
再帰的検索として理解できるAvailable anywhere a name is required.
サブノードを表す
[‘’ (, ‘’)]
1つ以上のサブノードを表す
[ (, )]
1つ以上の配列の下付きを表す
[start:end]
配列フラグメント、区間[start,end)、endを含まない
[?()]
フィルタ式、式の結果はbooleanでなければなりません
3.関数
JsonPath式の実行後に呼び出すことができます.入力値は式の結果です.
4.フィルター
フィルタは配列をフィルタするための論理式であり、一般的な式の形は[?(@.age>18)]のように、論理式&&または[?(@.price<10&@.category=‘fiction’)]]のように複数のフィルタ式を組み合わせることができ、文字列は単一引用符または二重引用符で囲まなければならない.例えば[?(@.color=‘blue’)]or[?(@.color="blue")].
5. 例 {
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"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
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
JSOnPathオンライン解析器:http://www.atoolbox.net/Tool.php?Id=792
フィルタは配列をフィルタするための論理式であり、一般的な式の形は[?(@.age>18)]のように、論理式&&または[?(@.price<10&@.category=‘fiction’)]]のように複数のフィルタ式を組み合わせることができ、文字列は単一引用符または二重引用符で囲まなければならない.例えば[?(@.color=‘blue’)]or[?(@.color="blue")].
5. 例 {
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"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
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
JSOnPathオンライン解析器:http://www.atoolbox.net/Tool.php?Id=792
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"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
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}