ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – JSON:嵌套数组

2019-10-02 18:00:04  阅读:211  来源: 互联网

标签:java json nested


我有一个程序从数据库(JSON MySQL中的数据存储)检索数据.

public static int selectData(Connection conn, String db_type) throws SQLException {

     JSONObject obj = new JSONObject();

    String q = "SELECT * FROM common_attr_test";
        PreparedStatement preparedStatement = conn.prepareStatement(q);
        preparedStatement.execute();
        ResultSet rs = preparedStatement.executeQuery();
        while (rs.next()) {
                String uuid_user = rs.getString("uuid");
                String attributes_uuid = rs.getString("attributes");

                obj.put("uuid", uuid_user);
                obj.put("attributes",  attributes_uuid);  
        }

            System.out.println("JSON Obj: "+obj);

    return 1;
 } // end selectData function

我设法得到了这个对象.输出是:

JSON Obj:

 {
  "attributes": "{\"1\": {\"1\": 2, \"2\": 2, \"3\": 3}, \"2\": {\"h4y4/1123\": 4, \"h4yp:/4/1123\": 1, \"h4yyp:/4/1123\": 1, \"httyyyyp:/4/1123\": 1}, \"3\": {\"Chrome|Windows NT 6.1\": 7}, \"7\": {\"2\": 4, \"6\": 1}, \"8\": {\"1\": 1, \"2\": 1, \"3\": 1, \"4\": 1, \"5\": 1, \"6\": 1, \"7\": 1}}",
  "uuid": "izyani1234561"
}

我需要一个关于如何处理数据并将信息放在不同数组/对象中的建议.例如

    array1 - 1:{1:2, 2:2, 3:3}
    array2 - 7:{2:4, 6:1}
    array3 - 8:{1:1, 2:1, 3:1, 4:1, 5:1, 6:1, 7:1}

谢谢.

解决方法:

您可以使用Jackson Api来实现这一目标.
你必须创建与json对象相同的Pojo类(Class应该有’attributes’,’uuid’等成员).
这是你必须使用的类

com.fasterxml.jackson.core.JsonFactory;
com.fasterxml.jackson.core.JsonParser;
com.fasterxml.jackson.databind.ObjectMapper;

和代码

ObjectMapper objMapper=new ObjectMapper();
JsonFactory jfactory = new JsonFactory();
JsonParser jParser=jfactory.createJsonParser(jsonString); //json Object as String

Mapperclass mapper=objMapper.readValue(jParser,Mapperclass.class);// Mapperclass is Pojo for your jsonObject

现在你可以使用Mapperclass的getter方法来获取java对象或Arrays等中的json属性

 String uuid=mapper.getUuid();

标签:java,json,nested
来源: https://codeday.me/bug/20191002/1843869.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有