JSONQuery 使用 Gson 解析 JSON开源项目

我要开发同款
匿名用户2018年01月17日
169阅读
开发技术Java
所属分类开发工具、语法解析工具
授权协议MIT

作品详情

JSONQuery—— 更简单的使用Gson解析JSON

解析一个字段只需一行代码,最多两行,支持不带双引号的非标准JSON

Example:

@Testpublic 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);    //将选择结果反射为泛型类型ListType type = new TypeToken>() {}.getType();    ListpostList = JSONQuery.select(json, "comment_info", type);}
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论