复杂json转MAP对象
普通json对象或者字符串转换map或者实体就不说了,这里主要提供复杂json 转map的方法
复杂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为Map对象探索(上)
使用Gson解析Json为Map对象探索(上) 有些时候由于后台业务系统的不一样导致一个Json的list对象装的并非是同一种类型的对象,导致无法建立比较好的Java模型,而刚好可以利用map对象的通 ...
- 使用Gson解析Json为Map对象探索(下)
使用Gson解析Json为Map对象探索(下) 下面来说说其中出现的问题 1.如何获取一个list列表 1.1首先是数据格式 1.2处理成列表的代码 com.google.gson.Gson gson ...
- 把json对象串转换成map对象
2019独角兽企业重金招聘Python工程师标准>>> /** * nc只支持简单的 * 把json对象串转换成map对象 * @param jsonObjStr e ...
- 总结的一些json格式和对象/String/Map/List等的互转工具类
总结的一些json格式和对象/String/Map/List等的互转工具类,有需要的可以看看,需要引入jackson-core-asl-1.7.1.jar.jackson-jaxrs-1.7.1.ja ...
- jsonobject转map对象_解析JSON中JSONObject的高级使用
简介: 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON.JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成.易 ...
- jsonobject返回map_如何把JSON对象转为map对象
如何把JSON对象转为map对象呢? JSON 对象保存在大括号内.就像在JavaScript中, 对象可以保存多个 键/值 对.Map对象保存键/值对,是键/值对的集合.任何值(对象或者原始值) 都 ...
- Java 读取 JSON 文件转成 Map 对象
Java 读取 JSON 文件转成 Map 对象 应用场景 待读取的外部 JSON 文件 Java 代码 读取结果 Gson 应用场景 Jar 包或 War 包引用一个外部文件作为项目运行的配置文件 ...
- java复杂map转json_转换复杂的JSON对象为 Map对象
packagecom.test;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjav ...
- json转对象,json转List,json转Map
json转对象 JSONObject thumb = shopGoodsInfo.get("thumb"); UrlBo urlBo = JsonInfoUtil.jsonToOb ...
最新文章
- django之BBS需求分析和orm设计-71
- SpringMVC:学习笔记(11)——依赖注入与@Autowired
- 软件工程作业No.5
- 全球及中国二乙氨基羟基苯甲酰基苯甲酸己酯行业规模分析与市场需求预测报告2022版
- 100行JavaScript代码实现JavaScript
- 2018年,该转行AI工程师吗?
- vb软件使用时间限制_GTD时间管理软件Wunderlist使用心得总结
- 朴素贝叶斯 半朴素贝叶斯_SQL Server中的朴素贝叶斯预测
- Gvim的基本命令:CTR-C =进入命令行
- UVA12555 Baby Me【水题】
- Fedora 16 更新源设置[zz]
- ArcGIS基本使用介绍
- Egg.js -- 及案列介绍
- php alt什么意思,img标签的alt作用是什么
- 【解题报告】2021CCPC东北四省赛
- Android界面全屏显示,隐藏状态栏,可下拉显示状态栏
- 花名的新思考:花名的最优用法?
- 开题报告:基于java医院在线预约挂号系统 毕业设计论文开题报告模板
- 中国电信无线网服务器,如何使用路由器共享电信天翼无线网络?
- 浅学C++(3)学习C语言(电话簿)
热门文章
- win10自带媒体服务器,Win10系统怎么启用流媒体功能
- JavaScript对XML的一些DOM操作
- Ubuntu onenote下载安装使用
- 1013: 求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积
- 读书笔记《不拘一格》
- 决赛序曲|第三届全国人工智能大赛回忆录
- poco linux安装
- 找不到 Web 地址对应的网页:_Web服务器的配置与管理
- cannot be cast to linux 环境,[Redis] ** cannot be cast to java.lang.String
- 这些书你看过了多少?