对于json中的map中为对象的解析
来源:互联网 发布:基础建筑学软件 编辑:程序博客网 时间:2024/05/21 17:10
今天写下此篇,主要是昨天要做一个json的解析,接口的返回json,把一些结构不同的东西放到了一个map中,如何解析,这个问题就变得比较棘手,
你可以用一个map<String,Object>来把这个结构进行封装,在封装结束把对象解析回来,如何把map中的对象变成具体的对象,这个问题变得比较复杂,如果是一个map中的那个key对应的对象为基本类型或者基本类型的包装类,直接通过对象类型转换就搞定了。如果对象的那个对象是个集合,你就需要把他一个一个遍历,直到那个集合获取到的是一个最基本的对象为止,如何把最小单元的对象变成具体的对象,如果你想通过直接类型转换来搞定,那你就错了,为何?因为那个结构是个map把map转具体对象,直接就报错了。如何解决这个问题?那就是把map转对象,通过对map遍历,通过类型的属性在map中找对应属性名的key存不存在?存在那就找该属性的set方法,把这个属性设置进去,这样就可以把这个转换完了,主要那个key对应的value一定要和那个set方法的类型一致,否则就出错。附上解决的代码:
//其中那个obj是要转换的具体的类,这个执行完,就把map对象的属性设置到obj这个对象中了
public static void transMap2Bean(Map<String, Object> map, Object obj) {
try {
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
if (map.containsKey(key)) {
Object value = map.get(key);
// 得到property对应的setter方法
Method setter = property.getWriteMethod();
setter.invoke(obj, value);
}
}
} catch (Exception e) {
System.out.println("transMap2Bean Error " + e);
}
return;
}
上面的代码是我们的老大写的。其实有了一堆工具,你只需要懂得该用那个就够了。且行且珍惜。
- 对于json中的map中为对象的解析
- Json数据解析为Map对象
- JAVA解析JSON数据转化为Map对象
- 使用Gson解析Json为Map对象探索(上)
- 使用Gson解析Json为Map对象探索(下)
- 双层嵌套json字符串(即json对象内嵌json数组)解析为Map
- json 转换为 map、对象
- java中Map等对象转换为json
- java中Map等对象转换为json
- Android 解析任意层数Json,将Map、List对象封装为Json
- json(3)---java中对象、数组、list、map转换为json对象
- List,Map,Bean等对象转化为Json的方式
- 将json格式的字符串解析成Map对象
- 对于Map集合转JSON的思考
- 将json 数组转换为Map 对象;[{}]此类字符串 则返回的对象的map
- url中search字符串解析为json对象
- js解析json字符串为json对象,js解析json的6种方法
- 将json字符串转化为Map对象
- VMware Ubuntu安装详细过程
- Nginx 1.0.x
- Servlet +JSP+Javabean 实现用户登录注册
- switch语句的输出问题
- Linux 下Java 进程启动停止shell脚本
- 对于json中的map中为对象的解析
- bzoj 2716 天使玩偶 CDQ分治
- PAT乙级 1018. 锤子剪刀布 (20)
- arcgis添加瓦片图层解决图层加载缓慢问题
- httpd(apache)--知识总结(3)--https
- android-apt切换为官方annotationProcessor
- 为什么子类的构造方法一定会调用父类的某个构造方法
- not exists 的用法
- C++文件读写与getline()