zoukankan      html  css  js  c++  java
  • JsonPath

    JsonPath

      • JsonPath参照XPath解析xml的方式来解析Json
      • JsonPath用符号$表示最外层对象,类似于Xpath中的根元素
      • JsonPath可以通过点语法来检索数据,如: shell $.store.book[0].title
      • 也可以使用中括号[]的形式,如 shell $['store']['book'][0]['title']

     

    运算符(Operators)

    运算符说明$根元素@当前元素*通配符,可以表示任何元素..递归搜索.子节点(元素)['' (, '')]一个或者多个子节点[ (, )]一个或者多个数组下标[start:end]数组片段,区间为[start,end)[?()]过滤器表达式,其中表达式结果必须是boolean类型,如可以是比较表达式或者逻辑表达式

    在pom.xml中添加Maven依赖

    <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path</artifactId>
        <version>2.3.0</version>
    </dependency>
    {
                //最简单直接暴力的方式是使用JsonPath 访问read静态方法
                String json = "{" +
                        ""lemon":{"teachers":[{"id":"101","name":"诸葛","addr":"昭君","age":25}" +
                        ",{"id":"102","name":"赵云","age":28}" +
                        ",{"id":"103","name":"梦琪","addr":"上路","age":16}" +
                        ",{"id":"104","name":"尚香","addr":"下路","age":29}]" +
                        ","salesmans":[{"id":"105","name":"张飞","age":17}" +
                        ",{"id":"106","name":"关羽","age":27}]}" +
                        ","avg":25}";
                List<String> authors = JsonPath.read(json, "$.lemon.teachers[*].name");
                log.info("authors:" + authors);
            }
    
            {
                //jsonpath还提供一些简单对象的映射,如将一个时间戳读取解析为java.util.Date对象
                String json = "{"date_as_long" : 1411455611975}";
                Date date = JsonPath.parse(json).read("$['date_as_long']", Date.class);
                log.info("date:" + date);
            }
    
            {
                //将jsonPath映射输出为pojo对象
                String userJson = "{'id':1,'name':'happy','age':25}";
                Hello user = JsonPath.parse(userJson).read("$", Hello.class);
                log.info("user:" + user);
            }
    
    
  • 相关阅读:
    【Spring Framework】10、代理模式
    【Spring Framework】8、使用注解开发
    Codeforces 516E
    AtCoder Grand Contest 055 题解
    Codeforces 1606F
    贪心/构造/DP 杂题选做
    整数拆分最大乘积
    CSP-S2021 被碾压记
    洛谷 P2791
    LCT 小记
  • 原文地址:https://www.cnblogs.com/ooo0/p/14793129.html
Copyright © 2011-2022 走看看