当前位置:首页 > 科技  > 软件

JsonPath详细使用教程,你了解多少?

来源: 责编: 时间:2023-09-18 21:42:13 437观看
导读Json Path介绍看它的名字你就能知道,这Json Path和JSON文档有关系,正如XPath之于XML文档一样,JsonPath为Json文档提供了解析能力,通过使用JsonPath,你可以方便的查找节点、获取想要的数据,JsonPath是Json版的XPath。JsonPat

Wgv28资讯网——每日最新资讯28at.com

Json Path介绍

看它的名字你就能知道,这Json Path和JSON文档有关系,正如XPath之于XML文档一样,JsonPath为Json文档提供了解析能力,通过使用JsonPath,你可以方便的查找节点、获取想要的数据,JsonPath是Json版的XPath。Wgv28资讯网——每日最新资讯28at.com

JsonPath语法

  • 表示文档的根元素
  • 表示文档的当前元素
  • .node_name  ['node_name'] 匹配下级节点
  • [index] 检索数组中的元素
  • [start:end:step] 支持数组切片语法
  • 作为通配符,匹配所有成员
  • .. 子递归通配符,匹配成员的所有子元素
  • (<expr>) 使用表达式
  • ?(<boolean expr>)进行数据筛选

XPath与JsonPath比较

XPathWgv28资讯网——每日最新资讯28at.com

JsonPathWgv28资讯网——每日最新资讯28at.com

说明Wgv28资讯网——每日最新资讯28at.com

/Wgv28资讯网——每日最新资讯28at.com

$Wgv28资讯网——每日最新资讯28at.com

文档根元素Wgv28资讯网——每日最新资讯28at.com

.Wgv28资讯网——每日最新资讯28at.com

@Wgv28资讯网——每日最新资讯28at.com

当前元素Wgv28资讯网——每日最新资讯28at.com

/Wgv28资讯网——每日最新资讯28at.com

.或[]Wgv28资讯网——每日最新资讯28at.com

匹配下级元素Wgv28资讯网——每日最新资讯28at.com

..Wgv28资讯网——每日最新资讯28at.com

N/AWgv28资讯网——每日最新资讯28at.com

匹配上级元素,JsonPath不支持此操作符Wgv28资讯网——每日最新资讯28at.com

//Wgv28资讯网——每日最新资讯28at.com

..Wgv28资讯网——每日最新资讯28at.com

递归匹配所有子元素Wgv28资讯网——每日最新资讯28at.com

*Wgv28资讯网——每日最新资讯28at.com

*Wgv28资讯网——每日最新资讯28at.com

通配符,匹配下级元素Wgv28资讯网——每日最新资讯28at.com

@Wgv28资讯网——每日最新资讯28at.com

N/AWgv28资讯网——每日最新资讯28at.com

匹配属性,JsonPath不支持此操作符Wgv28资讯网——每日最新资讯28at.com

[]Wgv28资讯网——每日最新资讯28at.com

[]Wgv28资讯网——每日最新资讯28at.com

下标运算符,根据索引获取元素,XPath索引从1开始,JsonPath索引从0开始Wgv28资讯网——每日最新资讯28at.com

`Wgv28资讯网——每日最新资讯28at.com

`Wgv28资讯网——每日最新资讯28at.com

[,]Wgv28资讯网——每日最新资讯28at.com

N/AWgv28资讯网——每日最新资讯28at.com

[start:end:step]Wgv28资讯网——每日最新资讯28at.com

数据切片操作,XPath不支持Wgv28资讯网——每日最新资讯28at.com

[]Wgv28资讯网——每日最新资讯28at.com

?()Wgv28资讯网——每日最新资讯28at.com

过滤表达式Wgv28资讯网——每日最新资讯28at.com

N/AWgv28资讯网——每日最新资讯28at.com

()Wgv28资讯网——每日最新资讯28at.com

脚本表达式,使用底层脚本引擎,XPath不支持Wgv28资讯网——每日最新资讯28at.com

()Wgv28资讯网——每日最新资讯28at.com

N/AWgv28资讯网——每日最新资讯28at.com

分组,JsonPath不支持Wgv28资讯网——每日最新资讯28at.com

示例

下面是相应的JsonPath的示例,代码来源于https://goessner/articles/JsonPath/,JSON文档如下:Wgv28资讯网——每日最新资讯28at.com

{	"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		}	}}

解析情况如下:Wgv28资讯网——每日最新资讯28at.com

XPathWgv28资讯网——每日最新资讯28at.com

JsonPathWgv28资讯网——每日最新资讯28at.com

ResultWgv28资讯网——每日最新资讯28at.com

/store/book/authorWgv28资讯网——每日最新资讯28at.com

$.store.book[*].authorWgv28资讯网——每日最新资讯28at.com

所有book的author节点Wgv28资讯网——每日最新资讯28at.com

//authorWgv28资讯网——每日最新资讯28at.com

$..authorWgv28资讯网——每日最新资讯28at.com

所有author节点Wgv28资讯网——每日最新资讯28at.com

/store/*Wgv28资讯网——每日最新资讯28at.com

$.store.*Wgv28资讯网——每日最新资讯28at.com

store下的所有节点,book数组和bicycle节点Wgv28资讯网——每日最新资讯28at.com

/store//priceWgv28资讯网——每日最新资讯28at.com

$.store..priceWgv28资讯网——每日最新资讯28at.com

store下的所有price节点Wgv28资讯网——每日最新资讯28at.com

//book[3]Wgv28资讯网——每日最新资讯28at.com

$..book[2]Wgv28资讯网——每日最新资讯28at.com

匹配第3个book节点Wgv28资讯网——每日最新资讯28at.com

//book[last()]Wgv28资讯网——每日最新资讯28at.com

$..book[(@.length-1)],或 $..book[-1:]Wgv28资讯网——每日最新资讯28at.com

匹配倒数第1个book节点Wgv28资讯网——每日最新资讯28at.com

//book[position()<3]Wgv28资讯网——每日最新资讯28at.com

$..book[0,1],或 $..book[:2]Wgv28资讯网——每日最新资讯28at.com

匹配前两个book节点Wgv28资讯网——每日最新资讯28at.com

//book[isbn]Wgv28资讯网——每日最新资讯28at.com

$..book[?(@.isbn)]Wgv28资讯网——每日最新资讯28at.com

过滤含isbn字段的节点Wgv28资讯网——每日最新资讯28at.com

//book[price<10]Wgv28资讯网——每日最新资讯28at.com

$..book[?(@.price<10)]Wgv28资讯网——每日最新资讯28at.com

过滤price<10的节点Wgv28资讯网——每日最新资讯28at.com

//*Wgv28资讯网——每日最新资讯28at.com

$..*Wgv28资讯网——每日最新资讯28at.com

递归匹配所有子节点Wgv28资讯网——每日最新资讯28at.com

可以在http://jsonpath.com/站点进行验证JsonPath的执行效果。Wgv28资讯网——每日最新资讯28at.com

java中使用

pom中引用Wgv28资讯网——每日最新资讯28at.com

<dependency>            <groupId>com.jayway.jsonpath</groupId>            <artifactId>json-path</artifactId>            <version>2.4.0</version>        </dependency>

通常是直接使用静态方法API进行调用,例如:Wgv28资讯网——每日最新资讯28at.com

String json = "...";List<String> authors = JsonPath.read(json, "$.store.book[*].author");

但以上方式仅仅适用于解析一次json的情况,如果需要对同一个json解析多次,不建议使用,因为每次read都会重新解析一次json,针对此种情况,建议使用ReadContext、WriteContext,例如:Wgv28资讯网——每日最新资讯28at.com

String json = "..."; ReadContext ctx = JsonPath.parse(json); List<String> authorsOfBooksWithISBN = ctx.read("$.store.book[?(@.isbn)].author"); List<Map<String, Object>> expensiveBooks = JsonPath                            .using(configuration)                            .parse(json)                            .read("$.store.book[?(@.price > 10)]", List.class);

本文链接:http://www.28at.com/showinfo-26-10484-0.htmlJsonPath详细使用教程,你了解多少?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 零拷贝并非万能解决方案:重新定义数据传输的效率极限

下一篇: Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)

标签:
  • 热门焦点
  • 跑分安卓第一!Redmi K60至尊版8月发布!卢伟冰:目标年度性能之王

    8月5日消息,Redmi K60至尊版将于8月发布,在此前举行的战略发布会上,官方该机将搭载搭载天玑9200+处理器,安兔兔V10跑分超177万分,是目前安卓阵营最高的分数
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz&ldquo;难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?&rdquo;这一番话,出自百合网联合创
  • 共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • OPPO K11搭载高性能石墨散热系统:旗舰同款 性能凉爽释放

    日前OPPO官方宣布,将于7月25日14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼
  • 荣耀Magic4 至臻版 首创智慧隐私通话 强劲影音系统

    2022年第一季度临近尾声,在该季度内,许多品牌陆续发布自己的最新产品,让大家从全新的角度来了解当今的手机技术。手机是电子设备中,更新迭代十分迅速的一款产品,基
Top