使用 Gson 解析 JSON JSONQuery

码农软件 · 软件分类 · 语法解析工具 · 2019-12-12 09:41:51

软件介绍

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

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

Example:

@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);
    //将选择结果反射为泛型类型ListType type = new TypeToken>() {}.getType();
    ListpostList = JSONQuery.select(json, "comment_info", type);

}

本文地址:https://www.codercto.com/soft/d/20971.html

神一样的产品经理

神一样的产品经理

闫荣 / 电子工业出版社 / 2012-6-1 / 79.00元

这是一本系统阐述移动与互联网产品从无到有、从有到优的产品经理实践案例著作。《神一样的产品经理:基于移动与互联网产品实践》贯穿着“人如产品,产品如人”、“产品的根基和源泉来自现实生活”的写作理念,表达了产品的成功需要神一样的产品经理管理的观点。 《神一样的产品经理:基于移动与互联网产品实践》由浅入深、循序渐进地阐述了产品经理、产品需求、用户体验、项目管理、产品运营和产品团队管理的内容,理论与实......一起来看看 《神一样的产品经理》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换