JsonPath实现JSON串的搜索

背景

项目中有一个JSON字符串,需要在JSON串中搜索指定的数据。

既然以前XML中可以使用XPath定位查找元素,那么同理,会不会有人写一个JsonPath呢?果不其然,有的。

解决

添加JsonPath依赖

依赖已经在Maven中央仓库中了:

<!-- TODO 版本号定义到根目录 -->
<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.4.0</version>
</dependency>

真实案例

在一个很长的JSON串中,对手机号进行了加密,加密后的字段是telephoneNoEncrypted。需要在这串JSON中把它找出来:

final String jsonStr = "...";
// $:表示从根目录开始查询
// ..: 深度搜索,一直往里查询
// telephoneNoEncrypted:要查询的字段名称
final String jsonPath = "$..telephoneNoEncrypted";
net.minidev.json.JSONArray result = JsonPath.read(jsonStr, jsonPath);
// TODO 从result获取想要的值

更多案例及配置,请参考github官网。

参考

1.[JsonPath](Gitee 极速下载/JsonPath)

 


版权声明:本文为u012383839原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。