java json字符串转成 Map或List
Posted 午休随笔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java json字符串转成 Map或List相关的知识,希望对你有一定的参考价值。
import java.util.List; import java.util.Map; import java.util.Map.Entry; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * 说明 json字符串 转成 Map/List * @author xss * @date 2013-1-18 10:22:41 * @mail wuniu2010@126.com */ public class JsonToMap { public static void main(String[] args) { //JSONArray String jsonArrayData="[{\\"a1\\":\\"12\\",\\"b1\\":\\"112\\",\\"c1\\":\\"132\\",\\"d1\\":\\"134\\"},{\\"a2\\":\\"12\\",\\"b2\\":\\"112\\",\\"c2\\":\\"132\\",\\"d2\\":\\"134\\"},{\\"a3\\":\\"12\\",\\"b3\\":\\"112\\",\\"c3\\":\\"132\\",\\"d3\\":\\"134\\"}]"; JSONArray jsonArray = JSONArray.fromObject(jsonArrayData); List<Map<String,Object>> mapListJson = (List)jsonArray; for (int i = 0; i < mapListJson.size(); i++) { Map<String,Object> obj=mapListJson.get(i); for(Entry<String,Object> entry : obj.entrySet()){ String strkey1 = entry.getKey(); Object strval1 = entry.getValue(); System.out.println("KEY:"+strkey1+" --> Value:"+strval1+"\\n"); } } // JSONObject String jsonObjectData="{\\"data1\\":{\\"a1\\":\\"12\\",\\"b1\\":\\"112\\",\\"c1\\":\\"132\\",\\"d1\\":\\"134\\"},\\"data2\\":{\\"a2\\":\\"12\\",\\"b2\\":\\"112\\",\\"c2\\":\\"132\\",\\"d2\\":\\"134\\"},\\"data3\\":{\\"a3\\":\\"12\\",\\"b3\\":\\"112\\",\\"c3\\":\\"132\\",\\"d3\\":\\"134\\"}}"; JSONObject jsonObject = JSONObject.fromObject(jsonObjectData); Map<String, Object> mapJson = JSONObject.fromObject(jsonObject); for(Entry<String,Object> entry : mapJson.entrySet()){ Object strval1 = entry.getValue(); JSONObject jsonObjectStrval1 = JSONObject.fromObject(strval1); Map<String, Object> mapJsonObjectStrval1 = JSONObject.fromObject(jsonObjectStrval1); System.out.println("KEY:"+entry.getKey()+" --> Value:"+entry.getValue()+"\\n"); for(Entry<String, Object> entry1:mapJsonObjectStrval1.entrySet()){ System.out.println("KEY:"+entry1.getKey()+" --> Value:"+entry1.getValue()+"\\n"); } } } }
org.json jar包环境下:(json所需要的jar包:点我下载)
import java.util.Iterator; import java.util.Set; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; /** * @date 2013-2-1 10:36:22 * @author xss * @说明 org.json jar包环境下 遍历 不知道外层key的json字符串 */ public class JsonTest { public static void main(String[] args) { try { String json = "{\\"1293142@1098820@1211867_1083940_1293396_1148650\\":[{\\"FS_ID\\":\\"1293396\\",\\"SX_MC\\":\\"李四\\",\\"YFS_ID\\":\\"1293142\\",\\"SZ_ID\\":\\"1148650\\",\\"SX_Z\\":\\"803932\\"}],\\"1293142@1098820@1211867_1083940_1293396_1097084\\":[{\\"FS_ID\\":\\"1293396\\",\\"SX_MC\\":\\"李四\\",\\"YFS_ID\\":\\"1293142@1084106@1103027\\",\\"SZ_ID\\":\\"1097084\\",\\"SX_Z\\":\\"124\\"}],\\"1293142@1098820@1211867_1083940_1293331_1148650\\":[{\\"FS_ID\\":\\"1293331\\",\\"SX_MC\\":\\"张三\\",\\"YFS_ID\\":\\"1293142\\",\\"SZ_ID\\":\\"1148650\\",\\"SX_Z\\":\\"1005240\\"}],\\"1293142@1098820@1211867_1083940_1293331_1097084\\":[{\\"FS_ID\\":\\"1293331\\",\\"SX_MC\\":\\"张三\\",\\"YFS_ID\\":\\"1293142@1084106@1103027\\",\\"SZ_ID\\":\\"1097084\\",\\"SX_Z\\":\\"204\\"}],\\"1293142@1098820@1211867_1083940_1284806_1148650\\":[{\\"FS_ID\\":\\"1284806\\",\\"SX_MC\\":\\"王小二\\",\\"YFS_ID\\":\\"1293142\\",\\"SZ_ID\\":\\"1148650\\",\\"SX_Z\\":\\"513475\\"}],\\"1293142@1098820@1211867_1083940_1284806_1097084\\":[{\\"FS_ID\\":\\"1284806\\",\\"SX_MC\\":\\"王小二\\",\\"YFS_ID\\":\\"1293142@1084106@1103027\\",\\"SZ_ID\\":\\"1097084\\",\\"SX_Z\\":\\"145\\"}],\\"1293142@1098820@1211867_1083940_1293461_1148650\\":[{\\"FS_ID\\":\\"1293461\\",\\"SX_MC\\":\\"朱重八\\",\\"YFS_ID\\":\\"1293142\\",\\"SZ_ID\\":\\"1148650\\",\\"SX_Z\\":\\"339040\\"}],\\"1293142@1098820@1211867_1083940_1293461_1097084\\":[{\\"FS_ID\\":\\"1293461\\",\\"SX_MC\\":\\"朱重八\\",\\"YFS_ID\\":\\"1293142@1084106@1103027\\",\\"SZ_ID\\":\\"1097084\\",\\"SX_Z\\":\\"52\\"}]}"; JSONObject jsonObj = new JSONObject(json); //方式二 Iterator it = jsonObj.keys(); for (int j = 0; it.hasNext(); j++) { String str = it.next().toString(); System.out.println(str); JSONArray array = new JSONArray(jsonObj.get(str).toString()); System.out.println(array); for (int i = 0; i < array.length(); i++) { JSONObject jons = array.getJSONObject(i); System.out.println(jons.get("SX_MC")); } } System.out.println("tep2"); //方式1 Set<String> set = jsonObj.keySet(); for (String str : set) { System.out.println(str); JSONArray array = new JSONArray(jsonObj.get(str).toString()); System.out.println(array); for (int i = 0; i < array.length(); i++) { JSONObject jons = array.getJSONObject(i); System.out.println(jons.get("SX_MC")); } } } catch (JSONException e) { e.printStackTrace(); } } }
已发表于Iteye
以上是关于java json字符串转成 Map或List的主要内容,如果未能解决你的问题,请参考以下文章
java-com.alibaba.fastjson快速处理json字符串转成list类型