js 泛型json 过滤_Java解析JSON的利器JSONPATH

你想不想让Java处理Json像JS那样点点就出来了

那就往下看吧!

JSONpath github地址

json-path/JsonPath​github.com
d9979998d39dfe0bbfc64b5fdf7a8d28.png

使用指南

引入Maven jar包

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

测试JSON串,可以在github中获取

简单说一下各个业务需求上需要那几个API吧

查:如果你想寻找某个key的值

直接使用

JsonPath.read(json, "$.store.book[*].author") 号是一个通配符, 代表所有,就是获取到这个json串的store的值里面的book这个数组每一个的author, 书店的每本书的作者列举出来, 返回值不固定,是一个泛型, 你看着合适用哪个,如果你看错了,它会抛出异常来,告诉你该用什么样的来接受

看下图控制台打印的错误信息,很明了

c6329e67eab5e02b8a470947883228bd.png

改:如果是替换某的Key的值

//把json进行格式化,然后直接按照json路径,把值重新赋值,格式化字符串返回
String newJson = JsonPath.pares(json).set("$.store.book[0].author", "lucas").JsonString();
//输出结果:把书店的第一本书作者替换为了lucas

增:如果是新塞入数据

//把json进行格式化,然后直接按照json路径,找到路径,插入key和value,格式化字符串返回
String newJson = JsonPath.parse(json).put("$.store.book[0]", "hello","你好").jsonString();
//输出结果:把书店的第一本书新增加了一个属性hello 值为你好

删:如果是删除数据

//把json进行格式化,然后直接按照json路径,找到路径,删除key和value,格式化字符串返回
String newJson = JsonPath.parse(json).delete("$.store.book[0].hello").jsonString();
//输出结果:把书店的第一本书删除了一个属性hello,对应的值也删除了

进行简单CRUD, 还有强大的工功能,请查看文章开头的github地址

微信公众号,同步文章,欢迎关注

2e9a136f5cc94e35d66085366a90f24c.png

de1764f0b176f41f92de0cc1c93bce62.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值