有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何使用org创建包含多个数组的json对象。json。java中的JSONObject包?

我想将json对象创建为, {“jsonName”:[{“id”:“1”,“name”:“abc”},{“id”:2,“name”:“pqr”}]} “jsonName”从数据库中获取数据,我想从该数据创建对象。 在我们创建了json对象之后,我想用“id”更新json对象中的一些值

假设我从java运行查询

String selectStr = "select * from emp";
ResultSet rs = ps.executeQuery ();
while(rs.next())
{
.....
}

我正在获取这样的数据,希望创建一个json对象来存储所有数据行。 有人能帮帮我吗。。我不熟悉json对象


共 (3) 个答案

  1. # 1 楼答案

    你可以试试quick-json。可用于将Java对象转换为其JSON表示。它还可以用于将JSON字符串转换为等效的Java对象。quick json可以处理任意Java对象

  2. # 2 楼答案

    使用组织。json库:

    JSONArray elements  = new JSONArray();
    JSONObject rootJson = new JSONObject();
    String selectStr    = "select * from emp";
    try
    {
        JSONArray elements  = null; // to prevent query returning empty resultset
        JSONArray el        = new JSONArray();
    
        ResultSet rs = ps.executeQuery();
        while(rs.next())
        {
            JSONObject el = new JSONObject();
            el.put("id", rs.getInt(1));
            el.put("name", rs.getString(2));
            elements.put(element);
        }
    
        rootJson.put("jsonName", elements);
    
    }catch(Exception e)
    {
        e.printStackTrace();
    }
    
  3. # 3 楼答案

    当使用诸如gson(请参阅:https://github.com/google/gson)这样的库时,这样做就变成了一项微不足道的任务。您可以简单地以类的形式定义结构,如下所示:

    public class JsonObj {
        public List<JsonItem> jsonName;
    }
    
    public class JsonItem {
        public int id;
        public String name;
    }
    

    然后,您可以使用gson将对象序列化为json(详尽的示例,但重点是):

    Gson gson = new Gson();
    JsonObj obj = new JsonObj();
    obj.jsonName = new ArrayList<String>();
    
    String selectStr = "select * from emp";
    ResultSet rs = ps.executeQuery();
    while(rs.next())
    {
        JsonItem item = new JsonItem();
        item.id = rs.getInt(1); //or whatever column index goes here
        item.name = rs.getString(2); //or whatever column index goes here
        obj.jsonName.Add(item);
    }
    String json = gson.toJson(obj);
    

    json对象现在将包含字符串格式的序列化json