我需要生成以下格式的JSON字符串:
[{"param1":"value1","param2":"value2"},{"param1":"value3","param2":"value4"}]我尝试用以下方式存储数据:
JSONArray jsonArray = JSONArray();
HashMap<String, String> hmap = new HashMap<String, String>();
hmap.put("param1", "value1");
hmap.put("param2", "value2");
jsonArray.add(hmap);
hmap = new HashMap<String, String>();
hmap.put("param1", "value3");
hmap.put("param2", "value4");
jsonArray.add(hmap);
System.out.print(jsonArray.toString());但它生成的json字符串格式如下:
["{param1:value1,param2:value2}", "{param1:value3,param2:value4}"]需要进行哪些更改才能获得所需格式的字符串?
发布于 2013-05-31 17:53:59
这应该是可行的。使用JSONObject而不是地图,并将它们添加到JSONArray。
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1= new JSONObject();
JSONObject jsonObject2= new JSONObject();
jsonObject1.put("param1", "value1");
jsonObject1.put("param2", "value2");
jsonArray.add(jsonObject1);
jsonObject2.put("param1", "value3");
jsonObject2.put("param2", "value4");
jsonArray.add(jsonObject2);
System.out.print(jsonArray.toString());我建议使用第三方库更好的替代方案,比如XStream,它可以帮你做到这一点。
发布于 2013-05-31 18:04:05
使用Jettison,它将完全按照您的要求进行操作
导入org.codehaus.jettison.json.JSONArray;
公共类JSONPrintTest扩展了TestCase{
public void testPrinting(){
JSONArray jsonArray = new JSONArray();
HashMap<String, String> hmap = new HashMap<String, String>();
hmap.put("param1", "value1");
hmap.put("param2", "value2");
jsonArray.put(hmap);
hmap = new HashMap<String, String>();
hmap.put("param1", "value3");
hmap.put("param2", "value4");
jsonArray.put(hmap);
System.out.print(jsonArray.toString());
}}
输出:{"param1":"value1","param2":"value2"},{"param1":"value3","param2":"value4"}
https://stackoverflow.com/questions/16854336
复制相似问题