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); }
github地址: https://github.com/dingyang9642/jsonQuery jsonQuery.js jsonquery.js旨在解决关于json/array对象进行相关查询、操作的工具集 使用说明 commonJs使用:import jsonQuery from ‘jsonqueryjs/jsonQuery’ amd/cmd使用: define([‘jsonquery
在Oracle 12c中使用JSON的Json查询与SQL查询(性能)(Json query vs SQL query using JSON in Oracle 12c (Performance)) 我正在使用oracle 12c和Sql Developer与json 对于此示例,我有以下JSON: { "id": "12", "name": "zhelon" } 所以我为此创建了以下表格: cr
brew install jq sudo apt-get install jq 使用例子https://stedolan.github.io/jq/manual/
package test; //json是一个递归数据结构,因此可以使用函数的递归调用来进行解析。 //每一类数据对应一个解析函数,代码中parseString实现解析字符串的功能,parseObject实现解析对象的功能。 //解析函数的主体功能就是依次遍历每一个字符,根据字符判断是否是字符串的开始、对象的开始……并进行相应的处理。 //json是一个键值对的结构,因此可以用map存储。map的
需求 查询数据库扩展字段内,json字符串中指定类型的数据 环境说明 数据库 扩展字段: extra 此字段是是json格式数据 内容如下: {"type":["1","2","3","4"]} 需要查询的内容:3 spring jpa. json JSON_EXTRACT function 代码 Specification<DepartmentEntity> specification = n
The following query returns the value {"item1":1,"item2":2,"item3":3}. SELECT JSON_QUERY('{"item1":1, "item2":2, "item3":3}', '$') AS JSONQUERY FROM DUMMY; The following query returns the value [1]. S
我正在使用凌空OkHttp从服务器获取一些数据。 响应是一个包含JSON的字符串,我想使用GSON/POJO解析它。 我得到错误: 预期BEGIN_OBJECT,但在第1行第1列路径$上是STRING 尝试解析时。 原因:java.lang.IllegalStateException:预期BEGIN_OBJECT但在第1行第1列路径$ com.google.gson.stream.JsonRead
问题内容: 我想使用 GSON* 在 JAVA中 解析此 JSON 文件: *** 但是我不知道如何加入root元素: 描述符 ,之后是 app3 元素,最后是 name 元素。 我遵循了本教程http://www.mkyong.com/java/gson-streaming-to-read-and-write- json/ ,但是它没有显示具有root和childs元素的情况。 问题答案: Im
问题内容: 我有一个像这样的JSON文件: 在文件具有根元素之前,我将使用: 代码,但我不认为如何将类编码为根元素是一个数组。 我试过使用: 与: 但是还没有运气。使用这种方法我还能怎么读呢? PS我有这个工作使用: 但是我更想知道如何使用这两种方法(如果可能)。 问题答案: 问题是由放置在数组中的JSON对象(在 每种 情况下)的末尾逗号引起的: 如果删除它们,您的数据将成为 和 应该工作正常。
附言:我用这个来工作: 但我更希望知道如何做到这一点(如果可能的话)与这两种方法。
我学习了这个教程http://www.mkyong.com/java/gson-streaming-to-read-and-write-json/,但它没有显示root和childs元素的情况。
我的如下所示: 现在,中的每个元素都有相同的结构(比如一个名为MessageDefault.java的POJO)。那么,如何将所有