一、什么是JsonPath?
1、JsonPath是什么?JsonPath是一种表达式语言,用于解析JSON数据中的属性。
2、JsonPath依照XPath语法规则来构建,使用JsonPath可以方便地从JSON数据中提取所需的信息,类似于XPath从XML文档中提取所需信息的功能。
3、JsonPath是一种允许开发者在JSON文档中查找数据的表达式语言,它更像是一种DSL。
二、JsonPath语法规则
1、JsonPath可以解析类似于XPath的语法规则,例如:$代表根节点;.代表层级关系;[]代表索引或下标;*代表通配符。
2、JsonPath的表达式可以是对象属性、数组范围、数组元素或者通配符。
3、JsonPath支持标量值,也支持对象和数组,当JsonPath求值为标量值时,它的结果将是一个简单数据类型,例如字符串或数字,当JsonPath求值为一个对象或数组时,它的结果将是一个JSON格式的对象。
三、JsonPath的用法示例
1、获取JSON对象中的一级属性
{ "name": "JsonPath", "version": "1.0.0", "author": { "name": "Tom", "age": 26 } } $.name
上述示例结果为:"JsonPath",即获取JSON对象中的一级属性。
2、获取JSON对象中的多级属性
{ "name": "JsonPath", "version": "1.0.0", "author": { "name": "Tom", "age": 26 } } $.author.name
上述示例结果为:"Tom",即获取JSON对象中的多级属性。
3、获取JSON对象中的数组元素
{ "fruits": [ { "name": "watermelon", "price": 2.5 }, { "name": "apple", "price": 1.5 }, { "name": "banana", "price": 2 } ] } $.fruits[1]
上述示例结果为:{"name": "apple", "price": 1.5},即获取JSON对象中的数组元素。
4、获取JSON对象中的多个数组元素
{ "fruits": [ { "name": "watermelon", "price": 2.5 }, { "name": "apple", "price": 1.5 }, { "name": "banana", "price": 2 } ] } $.fruits[0,2]
上述示例结果为:[{"name": "watermelon", "price": 2.5}, {"name": "banana", "price": 2}],即获取JSON对象中的多个数组元素。
5、获取JSON对象中满足条件的数组元素
{ "fruits": [ { "name": "watermelon", "price": 2.5 }, { "name": "apple", "price": 1.5 }, { "name": "banana", "price": 2 } ] } $.fruits[?(@.name=='apple')]
上述示例结果为:[{"name": "apple", "price": 1.5}],即获取JSON对象中满足条件的数组元素。
6、获取JSON对象中的嵌套属性
{ "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 } ], "bicycle": { "color": "red", "price": 19.95 } } } $..book[0].title
上述示例结果为:"Sayings of the Century",即获取JSON对象中的嵌套属性。
四、 JsonPath在线解析工具推荐
1、JsonPath Online Evaluator( https://jsonpath.com/ ),它提供了JsonPath在线解析的功能,支持JsonPath语法规则,已经支持了许多其他语言的API绑定。
2、JsonPath Playground( http://jsonpath.herokuapp.com/ ),它是一个可在线测试JsonPath表达式的应用,用户可以输入待测试的JSON数据,输入JsonPath表达式后,可以查看解析结果和执行时间,同时还支持前端JSLib实验室。
五、总结
以上是关于JsonPath在线解析的详细阐述,其中详细讲解了JsonPath的语法规则及用法示例,此外,还介绍了两款常用的JsonPath在线解析工具,并且推荐了JsonPath Playground本文的使用,相信读者能够快速上手学会JsonPath的使用。