将JSON表示为JAVA中的对象数组

时间:2011-08-04 17:14:10

标签: java json

我想创建一个JSON字符串作为这样的对象数组:

[
    {
        "alertid": "1",
        "alerttext": "This is test",
        "alertdate": "2010-02-11 09:03:40"
    },
    {
        "alertid": "2",
        "alerttext": "Another alert",
        "alertdate": "2010-02-11 09:11:04"
    }
]

JAVA JSON对象put方法如下所示:jsonObject.put(String key,Collection value);

当我输入我的密钥和集合时,我的json看起来像这样:

{
    "JSONObject": [
        {
            "alertid": "1",
            "alerttext": "This is test",
            "alertdate": "2010-02-11 09:03:40"
        },
        {
            "alertid": "2",
            "alerttext": "Another alert",
            "alertdate": "2010-02-11 09:11:04"
        }
    ]
}

当我被限制为put方法的签名时,如何让我的json字符串看起来像第一个字符串?

2 个答案:

答案 0 :(得分:2)

如果您正在使用net.sf.json库,请自己创建一个JSONArray并将JSONObjects放入其中。

JSONArray array = new JSONArray();

JSONObject obj = new JSONObject();
obj.put("alertid","1");

array.add(obj);

答案 1 :(得分:2)

您需要的是JSONArray,然后您可以填写JSONObject

尝试这样的事情:

JSONArray arr = new JSONArray();
for (JSONObject item : collection)
{
    arr.put(item);
}

或者,如果你已经拥有JSONObject的集合,你可以简单地写:

JSONArray arr = new JSONArray(yourFancyCollection);

然后,arr.toString()看起来就像你问的那样。

相关问题