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

时间:2017-05-10 09:24:04

标签: java json org.json

我想创建json对象, {" jsonName":[{" ID":" 1""名称":" ABC"},{ " ID":2"名称":" PQR"}]} " jsonName"从数据库中获取数据,我想从该数据创建对象。 我想用" id"更新json对象的一些值。在我们创建之后。

假设我从java运行查询..

Pooled Session

我正在获取这样的数据,并希望创建存储所有数据行的json对象。 有人可以帮助我..我是json对象的新手。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

当使用像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对象现在将包含String格式的序列化json。

答案 2 :(得分:0)

使用org.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();
}