1

是否可以像这样创建和解析 json

{
"time1": { "UserId": "Action"},
"time2": { "UserId": "Action"},
"time3": { "UserId": "Action"}
}

使用json-simple.jar
我想继续用元素更新 json"time": { "UserId": "Action"}

有什么帮助吗?请

4

2 回答 2

3

是的,可以使用它来创建:

JSONObject obj=new JSONObject();
JSONObject timeObj = new JSONObject();
timeObj.put("UserId", "Action");
obj.put("time", timeObj);

并解析

Object obj=JSONValue.parse(value);
JSONObject object=(JSONObject)obj;
JSONObject timeObj = obj.get("time");
String action = timeObj.get("UserId");

但我不建议你用这样的格式创建 JSON,JSONObject 属性键必须是唯一的,我建议你使用 JSONArray 而不是 JSONObject

我希望这可以帮助你

于 2013-08-20T15:27:25.257 回答
1

您的 JSON 不正确。你不能有重复的time键。而是将其转换为 JSON 数组。

{
  "time": [
    { "UserId": "Action"},
    { "UserId": "Action"},
    { "UserId": "Action"}
  ]
}

这是解析此 JSON 字符串的方法

String json =
        "{\n" + 
        "  \"time\": [\n" + 
        "    { \"UserId\": \"Action\"},\n" + 
        "    { \"UserId\": \"Action\"}\n" + 
        "  ]\n" + 
        "}";

JSONObject jsonRoot = new JSONObject(json);
JSONArray timeArray = jsonRoot.getJSONArray("time");

System.out.println(timeArray);
// prints: [{"UserId":"Action"},{"UserId":"Action"}]

以下是如何向此 JSON 数组添加新对象的方法

timeArray.put(new JSONObject().put("Admin", "CreateUser"));

System.out.println(timeArray);
// prints: [{"UserId":"Action"},{"UserId":"Action"},{"Admin":"CreateUser"}]
于 2013-08-20T16:04:55.880 回答