美文网首页
解析处理Josn的好帮手--JsonPath

解析处理Josn的好帮手--JsonPath

作者: 仁执 | 来源:发表于2019-02-12 20:41 被阅读0次

    常见需求

    1、读取字符串中某个key的值,但是这个key的层级比较深

    2、筛选出json字符串中符合条件的叶子节点

    3、读取某个key在json字符串中所有的值

    4、替换json字符串中的某个key的值

    5、移除json字符串中某个key

    常用方法

    1、map

    2、map

    3、map

    4、set /put 

          其中set方法只能在xpath存在的情况下执行更新,put方法若指定的xpath 的key不存在,则添加,若存在,则执行更新操作

    5、delete

    使用示例

    public static void main(String[] args) {

    String jsonStr ="{\n" +

    "    \"store\": {\n" +

    "        \"book\": [\n" +

    "            {\n" +

    "                \"category\": \"reference\",\n" +

    "                \"author\": \"hhhhh\",\n" +

    "                \"title\": \"Sayings of the Century\",\n" +

    "                \"price\": 8.95\n" +

    "            }\n" +

    "        ],\n" +

    "        \"bicycle\": {\n" +

    "            \"color\": \"red\",\n" +

    "            \"price\": 19.95\n" +

    "        }\n" +

    "    },\n" +

    "    \"expensive\": 10\n" +

    "}";

    DocumentContext json = JsonPath.parse(jsonStr);

    String setMethodPath ="$..book[0].author";

    String tagValue ="ReplacedText";

    String putMethodPath ="$..book[0]";

    String newValue ="hahahha";

    String deleteMethodPath ="$.expensive";

    System.out.println(json.set(setMethodPath, tagValue).jsonString());

    System.out.println(json.put(putMethodPath,"newKey", newValue).jsonString());

    System.out.println(json.put(putMethodPath,"author","updateValue").jsonString());

    System.out.println(json.delete(deleteMethodPath).jsonString());

    }

    依赖包

    <dependency>

    <groupId>com.jayway.jsonpath</groupId>

    <artifactId>json-path</artifactId>

    <version>2.4.0</version>

    </dependency>

    <dependency>

    <groupId>net.minidev</groupId>

    <artifactId>minidev-parent</artifactId>

    <version>2.3</version>

    </dependency>

    参考

    https://github.com/jayway/JsonPath

    文档

    http://static.javadoc.io/com.jayway.jsonpath/json-path/2.2.0/com/jayway/jsonpath/WriteContext.html

    相关文章

      网友评论

          本文标题:解析处理Josn的好帮手--JsonPath

          本文链接:https://www.haomeiwen.com/subject/esfleqtx.html