JSON:嵌套数组

我有一个程序从数据库(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();