如何使用net.sf.json.JSONObject库在单个JSON对象中放置多个JSON实例

时间:2011-06-20 13:21:52

标签: java json json-lib

 //create the JSON Object to pass to the client
 JSONObject object=new JSONObject();

 //one instance
 object.put("name","something2");
 object.put("status", "up");

 //second instance
 object.put("name", "something2");
 object.put("status", "down");

 String json = object.toString();  

 response.getOutputStream().print(json);

 System.out.println("JSON Contents: "+json);

所需的输出:{name:something1,status:up},{name:something2,status:down} ... etc

3 个答案:

答案 0 :(得分:2)

您需要拥有JSONArray:

JSONArray jsonarray = new JSONArray(); jsonarray.add(object)...

答案 1 :(得分:0)

我建议使用{name: something1, status: up}, {name: something2, status: down}等数组结构,而不是[{name: something1, status: up}, {name: something2, status: down}],而不是有效的JSON。因此,您可以使用net.sf.json.JSONArray构建此代码,添加JSONObjects,与您已经拥有的内容类似。当然,您需要将其更改为两个不同的JSONObjects,每个{{1}}都会添加元素“name”和“status”,每个元素只添加一次。

答案 2 :(得分:0)

在这种情况下,您必须改为使用JSONArray

List<Map> list = new ArrayList<HashMap>();
Map map1 = new HashMap();  
map1.put("name","something");  
Map map2 = new HashMap();  
map2.put("status", "up"); 
list.add(map1);
list.add(map2);

JSONArray array = JSONArray.fromObject(list);  
String json = array.toString();  
System.out.println("JSON: "+ json);