像这样简单的json。创建和解析

时间:2013-08-20 15:18:47

标签: java json

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

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

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

更新json

有任何帮助吗?请

2 个答案:

答案 0 :(得分: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

我希望这可以帮到你

答案 1 :(得分: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"}]