簡體   English   中英

如何使用java中的org.json.JSONObject包創建具有多個數組的json對象?

[英]how to create json object with multiple array within it using org.json.JSONObject package in java?

我想創建json對象,例如{“ jsonName”:[{“ id”:“ 1”,“ name”:“ abc”},{“ id”:2,“ name”:“ pqr”}]}}“ jsonName”從數據庫中獲取數據,我想從該數據中創建對象。 創建完之后,我想用“ id”從json對象更新一些值。

假設我從Java運行查詢。

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

我正在獲取這樣的數據,並希望創建和json對象來存儲所有數據行。 有人可以幫我嗎..我是json對象的新手。

您可以嘗試quick-json 可用於將Java對象轉換為其JSON表示形式。 它還可以用於將JSON字符串轉換為等效的Java對象。 quick-json可以與任何任意Java對象一起使用。

當使用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。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM