内容简介:JSONQuery v0.2.5 发布,更新内容如下: 本次更新修复了一个bug,增加了两个新重载方法,更方便的帮助把结果反序列化为Java对象。 Maven <dependency> <!-- JSONQuery @ https://JSONQuery.kagura.me...
JSONQuery v0.2.5 发布,更新内容如下:
本次更新修复了一个bug,增加了两个新重载方法,更方便的帮助把结果反序列化为 Java 对象。
Maven
<dependency> <!-- JSONQuery @ https://JSONQuery.kagura.me --> <groupId>me.kagura</groupId> <artifactId>JSONQuery</artifactId> <version>0.2.5</version> </dependency>
新增方法示例:
// v0.2.5新增 //将选择结果反序列化为普通对象 Post post = JSONQuery.select(json, "comment_info > [2]", Post.class); //将选择结果反序列化为普通对象数组 Post[] postArray = JSONQuery.select(json, "comment_info", Post[].class); //将选择结果反序列化为泛型类型List<Post> Type type = new TypeToken<List<Post>>() {}.getType(); List<Post> postList = JSONQuery.select(json, "comment_info", type);
完整示例:
@Test public void Test() throws TypeNotMismatchException, FieldNotExistException { String json = "" + "{\n" + " \"errno\": 0,\n" + " \"errmsg\": 成功,\n" + " \"user\": \"{\\\"user_id\\\":643361255,\\\"user_name\\\":\\\"鹞之神乐\\\",\\\"user_sex\\\":1,\\\"user_status\\\":1}\",\n" + " \"comment_info\": [\n" + " {\n" + " \"tid\": \"5504460056\",\n" + " \"pid\": \"116776960983\",\n" + " \"cid\": \"116857893053\"\n" + " },\n" + " {\n" + " \"tid\": \"5504460056\",\n" + " \"pid\": \"116776960983\",\n" + " \"cid\": \"116858057626\"\n" + " },\n" + " {\n" + " \"tid\": \"5504460056\",\n" + " \"pid\": \"116776960983\",\n" + " \"cid\": \"116880757453\"\n" + " }\n" + " ],\n" + " \"data\": {\n" + " \"comment_list\": {\n" + " \"116776891765\": {\n" + " \"comment_num\": 3,\n" + " \"comment_list_num\": 4\n" + " },\n" + " \"116776960983\": {\n" + " \"comment_num\": 4,\n" + " \"comment_list_num\": 4\n" + " }\n" + " }\n" + " }\n" + "}"; //获取根元素errno JsonResult jsonResult = JSONQuery.select(json, "errno"); //获取根元素errno,并转换为int int errno = jsonResult.getAsInt(); //获取根元素data中的comment_list jsonResult = JSONQuery.select(json, "data > comment_list"); //正则过滤出属性数组,针对一部分拿对象当数组用的情况 jsonResult = JSONQuery.select(json, "data > comment_list > [\\d+]"); //获取数组指定位置的元素 jsonResult = JSONQuery.select(json, "comment_info > [2]"); //获取数组指定位置的元素 负数坐标 jsonResult = JSONQuery.select(json, "comment_info > [-1]"); //针对某个字符串属性的值又是个json字符串的情况 jsonResult = JSONQuery.select(json, "user > user_name"); //jsonResult作为参数替代json字符串 JsonResult data = JSONQuery.select(json, "data"); jsonResult = JSONQuery.select(data, "comment_list"); //将json字符串转换为JsonResult jsonResult = JSONQuery.select(json, ""); jsonResult = JSONQuery.select(json, null); // v0.2.5新增 //将选择结果反序列化为普通对象 Post post = JSONQuery.select(json, "comment_info > [2]", Post.class); //将选择结果反序列化为普通对象数组 Post[] postArray = JSONQuery.select(json, "comment_info", Post[].class); //将选择结果反序列化为泛型类型List<Post> Type type = new TypeToken<List<Post>>() {}.getType(); List<Post> postList = JSONQuery.select(json, "comment_info", type); }
链接:
官网:https://JSONQuery.kagura.me
GitHub:https://github.com/KingFalse/JSONQuery
GitEE:https://gitee.com/Kagura/JSONQuery
OSChina:https://www.oschina.net/p/jsonquery
【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
谷歌时代的柏拉图
[美] 丽贝卡·戈尔茨坦 / 李鹏程 / 中信出版集团·新思文化 / 2017-12-10 / 69.00元
我愿意用我所有的科技去换取和苏格拉底相处的一个下午。 ——史蒂夫•乔布斯 谷歌时代,科技昌明,众声喧哗,哲学提出的许多问题,科学似乎都已经给出了答案。若是如此,为什么我们今天还需要哲学?这个由古希腊城邦时代的哲人苏格拉底和柏拉图开创的学科,真的过时了吗? 已经2400岁 的柏拉图对此有话要说。哲学家兼小说家、美国国家人文奖章获得者戈尔茨坦史海钩沉,从经典著作中复活了柏拉图,让他来......一起来看看 《谷歌时代的柏拉图》 这本书的介绍吧!