jsonpath 判断是否包含_JSONPath介绍

jsonpath 判断是否包含_JSONPath介绍/***@authoritguang*@create2017-12-1010:03**/@RunWith(SpringRunner.class)@SpringBootTest@Slf4jpublicclassJSONpathControllerTest{@Testpublicvoidtest(){Useruser=newUser(“itguang”,”123456″…

大家好,又见面了,我是你们的朋友全栈君。

jsonpath 判断是否包含_JSONPath介绍

/**

* @author itguang

* @create 2017-12-10 10:03

**/

@RunWith(SpringRunner.class)

@SpringBootTest

@Slf4j

public class JSONpathControllerTest {

@Test

public void test() {

User user = new User(“itguang”, “123456”, “123@qq.com”);

String username = (String) JSONPath.eval(user, “$.username”);

log.info(“$.username = {}”, username);

Entity entity = new Entity(123, user);

User user1 = (User) JSONPath.eval(entity, “$.value”);

log.info(“user={}”, user1.toString());

}

@Test

public void test2() {

User user = new User(“itguang”, “123456”, “123@qq.com”);

Entity entity = new Entity(123, user);

//判断entity中是否有 data

boolean contains = JSONPath.contains(entity, “$.data”);

Assert.assertTrue(contains);

//判断 entity.data.username 属性值是否为 itguang

boolean containsValue = JSONPath.containsValue(entity, “$.data.username”, “itguang”);

Assert.assertTrue(containsValue);

Assert.assertEquals(2, JSONPath.size(entity, “$”));

}

@Test

public void test3() {

List entities = new ArrayList();

entities.add(new Entity(“逻辑”));

entities.add(new Entity(“叶文杰”));

entities.add(new Entity(“程心”));

//返回集合中多个元素

List names = (List) JSONPath.eval(entities, “$.name”);

log.info(“返回集合中多个元素names={}”, names);

//返回下标 0 和 2 的元素

List result = (List) JSONPath.eval(entities, “[0,2]”);

log.info(“返回下标 0 和 2 的元素={}”, result);

// 返回下标从0到2的元素

List result2 = (List) JSONPath.eval(entities, “[0:2]”);

log.info(“返回下标从0到2的元素={}”, result2);

}

@Test

public void test4() {

List entities = new ArrayList();

entities.add(new Entity(1001, “逻辑”));

entities.add(new Entity(1002, “程心”));

entities.add(new Entity(1003, “叶文杰”));

entities.add(new Entity(1004, null));

//通过条件过滤,返回集合的子集

List result = (List) JSONPath.eval(entities, “[id in (1001)]”);

log.info(“通过条件过滤,返回集合的子集={}”, result);

}

/**

* 使用JSONPrase 解析JSON字符串或者Object对象

*

* read(String json, String path)//直接使用json字符串匹配

*

* eval(Object rootObject, String path) //直接使用 对象匹配

*

*

* {“store”:{“bicycle”:{“color”:”red”,”price”:19.95},”book”:[{“author”:”Nigel Rees”,”price”:8.95,”category”:”reference”,”title”:”Sayings of the Century”},{“author”:”Evelyn Waugh”,”price”:12.99,”isbn”:”0-553-21311-3″,”category”:”fiction”,”title”:”Sword of Honour”}]}}

*/

@Test

public void test5() {

String jsonStr = “{\n” +

” \”store\”: {\n” +

” \”bicycle\”: {\n” +

” \”color\”: \”red\”,\n” +

” \”price\”: 19.95\n” +

” },\n” +

” \”book\”: [\n” +

” {\n” +

” \”author\”: \”刘慈欣\”,\n” +

” \”price\”: 8.95,\n” +

” \”category\”: \”科幻\”,\n” +

” \”title\”: \”三体\”\n” +

” },\n” +

” {\n” +

” \”author\”: \”itguang\”,\n” +

” \”price\”: 12.99,\n” +

” \”category\”: \”编程语言\”,\n” +

” \”title\”: \”go语言实战\”\n” +

” }\n” +

” ]\n” +

” }\n” +

“}”;

JSONObject jsonObject = JSON.parseObject(jsonStr);

log.info(jsonObject.toString());

//得到所有的书

List books = (List) JSONPath.eval(jsonObject, “$.store.book”);

log.info(“books={}”, books);

//得到所有的书名

List titles = (List) JSONPath.eval(jsonObject, “$.store.book.title”);

log.info(“titles={}”, titles);

//第一本书title

String title = (String) JSONPath.read(jsonStr, “$.store.book[0].title”);

log.info(“title={}”, title);

//price大于10元的book

List list = (List) JSONPath.read(jsonStr, “$.store.book[price > 10]”);

log.info(“price大于10元的book={}”,list);

//price大于10元的title

List list2 =(List) JSONPath.read(jsonStr, “$.store.book[price > 10].title”);

log.info(“price大于10元的title={}”,list2);

//category(类别)为科幻的book

List list3 = (List) JSONPath.read(jsonStr,”$.store.book[category = ‘科幻’]”);

log.info(“category(类别)为科幻的book={}”,list3);

//bicycle的所有属性值

Collection values = (Collection) JSONPath.eval(jsonObject, “$.store.bicycle.*”);

log.info(“bicycle的所有属性值={}”,values);

//bicycle的color和price属性值

List read =(List) JSONPath.read(jsonStr, “$.store.bicycle[‘color’,’price’]”);

log.info(“bicycle的color和price属性值={}”,read);

}

}

jsonpath 判断是否包含_JSONPath介绍

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150519.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm 2021..2.3激活_在线激活「建议收藏」

    (pycharm 2021..2.3激活)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    106
  • navicat连接MySQL失败,cmd也不能登录MySQL_远程连接mysql

    navicat连接MySQL失败,cmd也不能登录MySQL_远程连接mysql出现Clientdoesnotsupportauthenticationprotocolrequestedbyserver…的解决方案mysqladmin-uroot-ppassword123456qmysql-uroot-pALTERUSER’root’@’localhost’IDENTIFIEDWITHmysql_native_password…

    2022年10月14日
    0
  • psm倾向得分匹配法举例_【计量地图】倾向得分匹配法(PSM)理论、操作与案例…[通俗易懂]

    这个方法的难点在于:首先,要明白反事实框架是一个什么样的东西?为什么一般把参与项目和不参与项目进行对比时会出现选择偏误?其次,搞清楚上面的原理之后,PSM真正难的是找到合适的协变量和完成两个苛刻的检验(共同支撑检验和平衡性检验)这篇文章我想达到哪些学习目标:(1)尽量汇集我看过的有用的资料(2)展示一个PSM分析的理论框架(3)针对难点说一下模型的调整问题(协变量选择、两个检验的调整)主要框架:1…

    2022年4月12日
    245
  • HTTP.SYS远程代码执行漏洞(MS15-034)

    HTTP.SYS远程代码执行漏洞(MS15-034)目录简介影响范围危害漏洞复现win2008r2换成win7利用msf简介漏洞编号:CVE-2015-1635(MS15-034)远程执行代码漏洞存在于HTTP协议堆栈(HTTP.sys)中,当HTTP.sys未正确分析经特殊设计的HTTP请求时会导致此漏洞。成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。影响范围任何安装了微软IIS6.0以上的WinServer2008R2、Win…

    2022年7月25日
    15
  • 有效避免JS全局变量污染

    有效避免JS全局变量污染1、使用名称空间varA={};//必须定义为对象A.person={name:"zhangsan",age:18,body:{height:"180cm",weight:"70kg"}};//var定义的全局不能被删除//deleteA;//隐式全局变量被删除//deleteA.p…

    2022年5月9日
    35
  • myeclipse6.5激活码_oracle注册码

    myeclipse6.5激活码_oracle注册码 MyEclipse6.0.1注册码Subscriber:administratorSubscriptionCode:nLR7ZL-655342-54657656405281154注册后:Subscriber:administratorProductID:E2MY(MyEclipseStandardSubscription)Licensever

    2022年9月13日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号