复杂json转MAP对象
2017-04-12 21:44
190 查看
普通json对象或者字符串转换map或者实体就不说了,这里主要提供复杂json 转map的方法
复杂json例如:String str="{aaa:test,key:[\"A\",\"B\",\"C\"],val:[\"1111\",\"2222\",\"333\"]}",某些key对应的value包含json数组
直接上java代码了:
调用如下即可看到效果:
Map map = JsonUtils.json2Map(json.toString());
方法详细解释在这里:http://blog.csdn.net/haqer0825/article/details/9708293
复杂json例如:String str="{aaa:test,key:[\"A\",\"B\",\"C\"],val:[\"1111\",\"2222\",\"333\"]}",某些key对应的value包含json数组
直接上java代码了:
public class JsonUtils {
/** *<p>类描述:复杂json字符串转换为Map,包含数组时value为List。</p> */ public static Map json2Map(String json) { LinkedMap map = new LinkedMap(); JSONObject js = JSONObject.fromObject(json); populate(js, map); return map; } /** *<p>类描述:json中的键值对解析成map。</p> */ private static Map populate(JSONObject jsonObject, Map map) { for (Iterator iterator = jsonObject.entrySet().iterator(); iterator .hasNext();) { String entryStr = String.valueOf(iterator.next()); String key = entryStr.substring(0, entryStr.indexOf("=")); String value = entryStr.substring(entryStr.indexOf("=") + 1, entryStr.length()); if (jsonObject.get(key).getClass().equals(JSONObject.class)) { HashMap _map = new HashMap(); map.put(key, _map); populate(jsonObject.getJSONObject(key), ((Map) (_map))); } else if (jsonObject.get(key).getClass().equals(JSONArray.class)) { ArrayList list = new ArrayList(); map.put(key, list); populateArray(jsonObject.getJSONArray(key), list); } else { map.put(key, jsonObject.get(key)); } } return map; } /** *<p>类描述:如果是键对应数组,则返回一个list到上级的map里。</p> */ private static void populateArray(JSONArray jsonArray, List list) { for (int i = 0; i < jsonArray.size(); i++) if (jsonArray.get(i).getClass().equals(JSONArray.class)) { ArrayList _list = new ArrayList(); list.add(_list); populateArray(jsonArray.getJSONArray(i), _list); } else if (jsonArray.get(i).getClass().equals(JSONObject.class)) { HashMap _map = new HashMap(); list.add(_map); populate(jsonArray.getJSONObject(i), _map); } else { list.add(jsonArray.get(i)); } }
}
调用如下即可看到效果:
Map map = JsonUtils.json2Map(json.toString());
方法详细解释在这里:http://blog.csdn.net/haqer0825/article/details/9708293
相关文章推荐
- 复杂json的转换 Map 数组 对象 生成 与 解析
- Gson解析复杂JSON对象
- 遍历json对象转成map
- 处理复杂的JSON对象
- JSON字符串转换成Map对象
- android中将复杂json对象进行数据转换
- fastJson解析复杂对象时碰到的问题
- axis 传输 简单对象,复杂对象,List,Map等
- 通过FastJson把字符串转换成JSON和Map和List对象处理json数据
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理 .
- springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解
- jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
- 把json对象串转换成map对象
- json(3)---java中对象、数组、list、map转换为json对象
- 将json 数组转换为Map 对象;[{}]此类字符串 则返回的对象的map
- 把jsonString(为json对象)转为map,循环得到key,value
- 将map对象转换为json时,如果key的value值是null,将不会将其加入json字符串
- [Android]JSON数据传输出错——JSONObject将对象数据(Map,List)当成字符串处理
- json数据转java对象(复杂java对象)
- Jquery Ajax 复杂json对象提交到WebService