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));
}