JsonPath使用教程

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

a、输出result下的isloadmore所对应的value

   String checkurl = "$.result.isloadmore";
Boolean boolean1= JsonPath.read(baores, checkurl); 
System.out.println(boolean1);
b、输出newslist列表中包含的所有对象

String checkurl2 = "$.result.newslist[*]";
        List<String> newslist = JsonPath.read(baores, checkurl2);
        System.out.println(newslist);
c、输出newslist列表的第一个对象

Object object = JsonPath.read(baores, "$.result.newslist[0]");
        System.out.println(object);
d、输出newslist列表中所有对象对应的属性username

List<String> username = JsonPath.read(baores, "$.result.newslist[*].username");
        System.out.println(username);
e、输出newslist列表中第一个对象的title

String title= JsonPath.read(baores, "$.result.newslist[0].title");
        System.out.println(title);
f、输出newslist中mediatype=3的所有的对象

List<Object> finallist = JsonPath.read(baores, "$.result.newslist[?(@.mediatype ==3)]");
        for(int i =0;i<finallist.size();i++){
            System.out.println(finallist.get(i));
        }
g、输出newslist中赞数大于10的所有对象

List<Object> finallist3 = JsonPath.read(baores, "$.result.newslist[?(@.praisenum > 10)]");   
        for(int i =0;i<finallist3.size();i++){
            System.out.println(finallist3.get(i));
        }
h、输出newslist中含有userid的所有对象

List<Object> finallist4 = JsonPath.read(baores, "$.result.newslist[?@.userid]");
        for(int i =0;i<finallist4.size();i++){
            System.out.println(finallist4.get(i));
        }
j、我们还可以先编辑好一个路径,在多个地方重复使用

JsonPath path = JsonPath.compile("$.result.hotvuser");
        List<Object> userlist = path.read(baores);
        for(int i =0;i<userlist.size();i++){
            System.out.println(userlist.get(i));
        }
k、我们还可以自定义过滤器来获取想要的任何元素,可以多条件查询;

下面例子查找: newslist中存在indentifiertype,并且username为 "韩路出品", "车比得" 的对象

Filter filter = Filter.filter(Criteria.where("identifiertype").exists(true).and("username").in("韩路出品", "车比得"));
        List<Object> finallist5 = JsonPath.read(baores, "$.result.newslist[?]", filter);    
        for(int i =0;i<finallist5.size();i++){
            System.out.println(finallist5.get(i));
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值