json转map 怎么转

qq_36184951 2017-09-06 03:48:39
目前项目有个需求,导出json。我用的map<String,object> value放的是list。转成json后给对方,完事后还会传同样格式的json给我。
Map<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put("eList", eList);
jsonMap.put("iList", iList);
JsonConfig jsonConfig = new JsonConfig(); 
jsonConfig.setIgnoreDefaultExcludes(false); 
jsonConfig.setExcludes(new String[]{"instruments","entrust"});
JSONObject jsonArray = JSONObject.fromObject(jsonMap,jsonConfig);

我是这么转的json,但是现在不会再转回来了。求教大神,怎么再把json转成map啊(就是再转成我最开始的那样,value是list的)。
...全文
639 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40036816 2017-10-05
  • 打赏
  • 举报
回复
最傻的方法 使用keySet方法 自己重新封装一个HashMap
梦天城 2017-09-30
  • 打赏
  • 举报
回复
public static Map<String,Object> IteratorHash(JSONObject JsonToMap){
		Iterator<?> it = JsonToMap.keys();		
		HashMap<String, Object> RMap = new HashMap<String, Object>();  
		while(it.hasNext()){
			String key = String.valueOf(it.next());
			if(JsonToMap.get(key).getClass() == JSONArray.class){//判是否为列表
				
				if(JsonToMap.getJSONArray(key).isEmpty()){//判列表是否为空
					RMap.put(key,null);
				}else{
					
					List<Map<String,Object>> MapListObj=new ArrayList<Map<String,Object>>();
					for(Object JsonArray : JsonToMap.getJSONArray(key)){
						HashMap<String, Object> TempMap = new HashMap<String, Object>();						
						TempMap.putAll(IteratorHash(JSONObject.fromObject(JsonArray)));						
						MapListObj.add(TempMap);
					}					
					RMap.put(key, (Object) MapListObj);
				}
			}else if(JsonToMap.get(key).getClass() == JSONObject.class){
				
				RMap.putAll(IteratorHash(JsonToMap.getJSONObject(key)));
				
			}else if(JsonToMap.get(key).getClass() == String.class){
				
				RMap.put(key, JsonToMap.get(key));
				
			}
		}
		
		return RMap;
	}
那一箭的风情 2017-09-30
  • 打赏
  • 举报
回复
/**
* 转换为Map类型
* @param jsonString
* @return
*/
public static List<Map<String,Object>> jsonToListMap(String jsonString){
Gson gson = new GsonBuilder().enableComplexMapKeySerialization()
.create();
List<Map<String,Object>> retMap = gson.fromJson(jsonString,
new TypeToken<List<Map<String,Object>>>() {}.getType());
return retMap;
}
遥远的想念 2017-09-15
  • 打赏
  • 举报
回复

Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
String a = "{\"ack_code\":\"SUCCESS\",\"errors\":[],\"sign\":null,\"sign_method\":null,\"timestamp\":null,\"correlation_id\":null,\"response_id\":\"65369241-af6b-46dd-8d08-b22c6049d6f4\",\"data\":[{\"name\":\"就业创业证\",\"division\":\"\",\"remark\":null,\"creator\":null,\"issuer\":null,\"abolisher\":null,\"algorithm\":\"SHA1RSA\",\"license_code\":\"44010020170003R4TB\",\"license_type\":\"CERTIFICATE\",\"id_code\":\"4401110113000001\",\"doc_name\":null,\"doc_summary\":null,\"doc_keyword\":null,\"holder_name\":\"马碧君\",\"holder_identity_type\":null,\"holder_identity_num\":\"44010219691010144X\",\"issue_org_name\":\"白云区劳动就业服务管理中心\",\"issue_org_code\":null,\"division_code\":\"440100\",\"issue_date\":\"2013-05-22 00:00:00\",\"begin_date\":null,\"expiry_date\":null,\"data_fields\":\"{'ZZMC':'就业创业证','CYRSFZJHM':'44010219691010144X','XM':'马碧君','CYRXM':'马碧君','SFZHM':'44010219691010144X','XB':'女','CSRQ':'1969-10-10','MZ':'汉族','ZZHM':'4401110113000001','FZJGMC':'白云区劳动就业服务管理中心','FZRQ':'2013-05-22','ZJHM':'4401110113000001','HJDJSJ1':'2016-01-20','HJXZ1':'本地非农业户口(本地城镇)','HJXXDZ1':'白云区景泰','CYDZDJSJ1':'2016-01-20','XXDZ1':'白云景泰新村西七巷32号702房','XSJYFCZCQK1':'20130522','XSJYFCZCNRQX1':'DR002','XSJYFCZCJBR1':'黄欣琳'}\",\"attachment_fields\":null,\"trust_level\":\"A\",\"extend_props\":null,\"biz_num\":null,\"license_item_code\":\"100131301\",\"license_status\":\"ISSUED\",\"creation_time\":\"2017-01-02 14:57:19\",\"issue_time\":null,\"abolish_time\":null,\"abolish_reason\":null,\"correlative_license\":null,\"public_key\":\"3082010a0282010100a3c625cac3666da065302231c793db9025a16669c550b6015c7e5bfcd995e88b9284be4a0e908909c4fc6e658bf9e51769d34df8b0d896fb9f1ad7196f270c40ec416e94c138a3b36abcf2053558ed76992b8b7d7030b6ae21fafffff5eb352f7c719664d924d2e678d727532a163f24953b405ff79d62bca801e427233ff7faa8958491827d553545b2188ee9bb50fe8e156bd271e2d14ff8e7df0be393b57ac1ad0e0e81372668d2c87dc36d1ccb6f0afa46834798d93b7d9d742abd5c6d6a36bc829b18dfb7e501f5fa9a48b52f6b88ee3b451de889111fef0f223d8c02e939777350b6d1096142b25777e3aaeb78ff704453ca2320424ff9e25c2bdf87270203010001\",\"last_modificator\":\"*SYSADM*\",\"last_modification_time\":\"2017-01-02 14:57:24\",\"s_sign_cert\":\"579e619039894c34ad3cf8b01255f418\",\"s_sign_data\":\"sDzO5NNAuGZcqQw8mTuxEceXBTdWNcZi/xi2caRmcRqjLRTlQUH1Q5+IKyhfqd7uLUsl/YgSn49iqCdRwbxDVetDXgHZ6T5Fm2tgf8iPCYRUQOPPsEpCqOVr8Dab88UnOUyDCWKwkMz3VXaxpooYmN98BFut+PkQVPSev62Gk9YefEVu2xypSLax82/I8PP9p2N8Htk8AKnJ3jchtOBJVEjP8puOatLxj7IRrduero0l0l7aU38gErH+0uPRBHhS1HWhRtbY8Zj1r7ArPS4X290vIoJcMoB7wG7a1exRcWDXxOcxp7jhFZr48A0Z8OJIFVeMmtC3gTIJ9Sy/6ojaTw==\"}],\"total_count\":1}";
		Map cozy=new HashMap<String, Object>();
		Map aM = gson.fromJson(a, Map.class);
		List errors = (ArrayList)aM.get("errors");
		List<Map> data = (ArrayList)aM.get("data");
		for(Map map : data){
			cozy.put("error", map.get("name"));
			System.out.println(map.get("name"));
			System.out.println(cozy);
		}
		
小久喔 2017-09-15
  • 打赏
  • 举报
回复
这个强转不行,用gson转,现在都是这个,你先去看下吧
lifewell1 2017-09-08
  • 打赏
  • 举报
回复
最简单直接强转就可以
try_lock 2017-09-06
  • 打赏
  • 举报
回复
这篇文章里面有,很详细,你可以看看json的各种转换 http://blog.csdn.net/xs_challenge/article/details/77456728
mmqw 2017-09-06
  • 打赏
  • 举报
回复
		Set set=json.keySet();
		for(Object o:set){
			System.out.println(o+" :"+json.get(o));
		}
李德胜1995 2017-09-06
  • 打赏
  • 举报
回复
使用jackson转。。。

 public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {   
              return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);   
    }  

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧