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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • log4j 日志大小限制 分成30一个 不按日期分日志 按大小分成 按生产日期

    log4j 日志大小限制 分成30一个 不按日期分日志 按大小分成 按生产日期

    2022年1月1日
  • 测试 windows live writer

    测试 windows live writer

    2021年5月8日
  • java oracle 连接池_oracle数据库连接池配置

    java oracle 连接池_oracle数据库连接池配置频繁的创建和销毁数据库连接即消耗系统资源又使得程序效率低下,在这种情况下,出现了使用数据库连接池的方法,类似于线程池,初期创建一定数量的连接供应用程序使用,当使用完成后将其归还给连接池而不是销毁,这样有效的提高了资源利用率,下面分享一种简单的创建连接池的方法:1.首先,我们新建一个maven工程,并且导入ojdbc,dbcp,junit三个包待用2.然后,我…

    2022年9月2日
  • pytorch转tensorflow_语义分割样本不均衡

    pytorch转tensorflow_语义分割样本不均衡憨批的语义分割重制版7——TF2搭建自己的Unet语义分割平台注意事项学习前言什么是Unet模型代码下载Unet实现思路一、预测部分1、主干网络介绍2、加强特征提取结构3、利用特征获得预测结果二、训练部分1、训练文件详解2、LOSS解析训练自己的Unet模型注意事项这是重新构建了的Unet语义分割网络,主要是文件框架上的构建,还有代码的实现,和之前的语义分割网络相比,更加完整也更清晰一些。建议还是学习这个版本的Unet。学习前言还是快乐的pytorch人。什么是Unet模型Unet是一个优秀

    2022年8月21日
  • 推荐几款可以直接在手机上编程的app(包含Java、C、Python等)

    这里介绍几款可以在手机上编程的app,分别是:1.java和Android:AIDE集成开发环境。2.C语言:c语言编译器、C4droid。3.python:QPython3、Termux。4.CSS/HTML/JavaScript:HTMLplay。大部分都不需要root,可以直接编写程序并运行,下面我简单介绍一下这3个app的安装和简单使用,主要内容如下:一.AIDE集…

    2022年4月6日
  • 菜鸟浅谈——web安全测试[通俗易懂]

    菜鸟浅谈——web安全测试[通俗易懂]本文仅为小白了解安全测试提供帮助一:安全测试注意事项1)要注意白帽子与黑客之间的区别2)在挖漏洞挣外快时,注意不要使用安全扫描或暴力激活成功教程软件对上线网站进行扫描或攻击。不要对上线网站造成破坏,不要去获取网站的数据库信息等。否则等待的不是money,而是牢狱啦~~二:web介绍1)worldwideweb万维网,也被叫做www(3w),非常普遍的互联网应用,每天都有数以亿万…

    2022年9月19日

发表回复

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

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