Как поместить более одного экземпляра JSON в один объект JSON с помощью библиотеки net.sf.json.JSONObject - PullRequest
2 голосов
/ 20 июня 2011
 //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);

Желаемый вывод: {имя: что-то1, статус: вверх}, {имя: что-то2, статус: вниз} ... и т. Д.

Ответы [ 3 ]

2 голосов
/ 20 июня 2011

У вас должен быть JSONArray:

JSONArray jsonarray = new JSONArray(); jsonarray.add(object)...
0 голосов
/ 20 июня 2011

В этом случае вам придется использовать 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);
0 голосов
/ 20 июня 2011

Вместо {name: something1, status: up}, {name: something2, status: down}, который не является допустимым JSON, я рекомендую ориентироваться на структуру массива, например [{name: something1, status: up}, {name: something2, status: down}].Итак, вы бы построили это с помощью net.sf.json.JSONArray, добавив JSONObjects, построенный аналогично тому, что вы уже получили.Конечно, вам нужно изменить его, чтобы сделать два разных JSONObjects, каждый из которых будет иметь элементы «имя» и «статус», добавленные только один раз каждый.

...