我刚刚选择了JSON.simple - 一个简单的JSON Java工具包,它位于https://code.google.com/p/json-simple/。 我需要使用key =>创建Json Arrays;值,只是值字符串的intead。例如,我有以下代码
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class JsonSimpleExample {
public static void main(String[] args) {
JSONObject obj = new JSONObject();
obj.put("name", "mkyong.com");
obj.put("age", new Integer(100));
JSONArray list = new JSONArray();
list.add("msg 1");
list.add("msg 2");
list.add("msg 3");
obj.put("messages", list);
}
}
产生:
{
"age":100,
"name":"mkyong.com",
"messages":[
"msg 1",
"msg 2",
"msg 3"
]
}
现在我需要使用key =>创建一个Json对象和数组;值而不仅仅是String作为值。如下所示:
{
"age":100,
"name":"mkyong.com",
"messages":[
{
"msg1" : "1",
"msg2" : "2",
"msg3" : "3"
}
]
}
请问我该如何实现这一目标?感谢
答案 0 :(得分:4)
为此,您还需要2个JSONObjects,并且还要为您放入数组的对象提供密钥。实施例;
JSONObject obj = new JSONObject();
obj.put("name", "mkyong.com");
obj.put("age", new Integer(100));
JSONArray list = new JSONArray();
JSONObject obj2 = new JSONObject();
JSONObject obj3 = new JSONObject();
obj3.put("msg 1","1");
obj3.put("msg 2","2");
obj3.put("msg 3","3");
obj2.put("obj3",obj3);
list.put(obj2);
obj.put("messages", list);
答案 1 :(得分:3)
只需创建一个新的JsonObject
并将其添加到JsonArray
而不是String
。
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class JsonSimpleExample {
public static void main(String[] args) {
JSONObject obj = new JSONObject();
obj.put("name", "mkyong.com");
obj.put("age", new Integer(100));
JSONArray list = new JSONArray();
JSONObject innerObj = new JSONObject();
innerObj.put("msg1", "1");
list.add(innerObj);
obj.put("messages", list);
}
}
答案 2 :(得分:1)
因此,而不是将字符串放入列表JSONObject
中。
JSONObject listobj = new JSONObject();
listobj.put("msg1", "1");
JSONArray list = new JSONArray();
list.add(listobj);