猿问

将JSON字符串转换为HashMap

将JSON字符串转换为HashMap

我正在使用Java,我有一个JSON字符串:

{"name" : "abc" ,"email id " : ["abc@gmail.com","def@gmail.com","ghi@gmail.com"]}

那我的Java地图:

Map<String, Object> retMap = new HashMap<String, Object>();

我想将JSONObject中的所有数据存储在该HashMap中。

任何人都可以为此提供代码吗?我想使用这个org.json库。


喵喔喔
浏览 3117回答 3
3回答

largeQ

几天前我通过递归编写了这段代码。public&nbsp;static&nbsp;Map<String,&nbsp;Object>&nbsp;jsonToMap(JSONObject&nbsp;json)&nbsp;throws&nbsp;JSONException&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;Map<String,&nbsp;Object>&nbsp;retMap&nbsp;=&nbsp;new&nbsp;HashMap<String,&nbsp;Object>(); &nbsp;&nbsp;&nbsp;&nbsp;if(json&nbsp;!=&nbsp;JSONObject.NULL)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retMap&nbsp;=&nbsp;toMap(json); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;retMap;}public&nbsp;static&nbsp;Map<String,&nbsp;Object>&nbsp;toMap(JSONObject&nbsp;object)&nbsp;throws&nbsp;JSONException&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;Map<String,&nbsp;Object>&nbsp;map&nbsp;=&nbsp;new&nbsp;HashMap<String,&nbsp;Object>(); &nbsp;&nbsp;&nbsp;&nbsp;Iterator<String>&nbsp;keysItr&nbsp;=&nbsp;object.keys(); &nbsp;&nbsp;&nbsp;&nbsp;while(keysItr.hasNext())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;key&nbsp;=&nbsp;keysItr.next(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;value&nbsp;=&nbsp;object.get(key); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(value&nbsp;instanceof&nbsp;JSONArray)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;toList((JSONArray)&nbsp;value); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(value&nbsp;instanceof&nbsp;JSONObject)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;toMap((JSONObject)&nbsp;value); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(key,&nbsp;value); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;map;}public&nbsp;static&nbsp;List<Object>&nbsp;toList(JSONArray&nbsp;array)&nbsp;throws&nbsp;JSONException&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;List<Object>&nbsp;list&nbsp;=&nbsp;new&nbsp;ArrayList<Object>(); &nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;array.length();&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;value&nbsp;=&nbsp;array.get(i); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(value&nbsp;instanceof&nbsp;JSONArray)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;toList((JSONArray)&nbsp;value); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(value&nbsp;instanceof&nbsp;JSONObject)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;toMap((JSONObject)&nbsp;value); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(value); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;list;}

陪伴而非守候

使用GSon,您可以执行以下操作:Map<String,&nbsp;Object>&nbsp;retMap&nbsp;=&nbsp;new&nbsp;Gson().fromJson( &nbsp;&nbsp;&nbsp;&nbsp;jsonString,&nbsp;new&nbsp;TypeToken<HashMap<String,&nbsp;Object>>()&nbsp;{}.getType());

有只小跳蛙

希望这会奏效,试试这个:import&nbsp;com.fasterxml.jackson.databind.ObjectMapper;Map<String,&nbsp;Object>&nbsp;response&nbsp;=&nbsp;new&nbsp;ObjectMapper().readValue(str,&nbsp;HashMap.class);str,你的JSON字符串如此简单,如果你想要emailid,String&nbsp;emailIds&nbsp;=&nbsp;response.get("email&nbsp;id").toString();
随时随地看视频慕课网APP

相关分类

Java
我要回答