BUG记录 —— JSON转对象部分字段丢失
在进行http请求之后或者其他只能获取到JSON字符串的场景中,我们在处理的时候经常会转为实体对象,以前一直使用阿里的fastjson转换无往不利,但是今天碰到问题了
//json转对象
JSON.parseObject(jsonStr, Object.class);//对象转JSON
JSON.toJSONString(obj)
问题:在JSON转为实体对象的时候部分字段没有转换过来,仍然为null;
原因:未知,可能是因为有list字段,有空试下再更新
解决办法:先把JSON转为Map<String, Object>(所有有数据的字段都会转换成功,包括list字段),然后再把map转为实体对象
public static Object jsonToObject(String json, Class<?> beanClass) throws Exception {if (StringUtils.isBlack(json))return null;Map<String, Object> map = JSON.parseObject(json, Map.class);Object obj = beanClass.newInstance();Field[] fields = obj.getClass().getDeclaredFields();for (Field field : fields) {int mod = field.getModifiers();if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){continue;}if(map.get(field.getName()) == null){continue;}field.setAccessible(true);if(field.getType().getName().equals("java.lang.Long")){field.set(obj, Long.valueOf(map.get(field.getName()) + ""));}else if(field.getType().getName().equals("java.lang.Double")){field.set(obj, Double.valueOf(map.get(field.getName()) + ""));}else if(field.getType().getName().equals("java.lang.Integer")){field.set(obj, Integer.valueOf(map.get(field.getName()) + ""));}else{field.set(obj, map.get(field.getName()));}}return obj;}
这个问题我目前这个规避解决了,有知道原因的或者看过了fastjson或者有其他解决办法的同学欢迎交流~~~
BUG记录 —— JSON转对象部分字段丢失相关推荐
- bug记录--------JSON parse error:Cannot deserialize value of type `com.test.EnumTest` from String
在查询类型的时候定义了一个枚举EnumTest,这样前端传类型的时候传枚举就可以. 然后在查询的时候报错: JSON parse error:Cannot deserialize value of t ...
- java反射实现自定义json转对象方法-忽略字段大小写、字段个数
java反射实现自定义json转对象方法-忽略字段大小写.字段个数 开发过程中经常会遇到json转对象,可以使用FastJson或者Gson自带的工具类进行转换,但当遇到json与对象属性名称大小写不 ...
- 订单 图片(一对多关系),地址保存在一个字段中(Json数组对象格式)
订单---->图片(一对多关系),地址保存在一个字段中(Json数组对象格式) 1.前端列表动态添加: jsp:<form id="postForm" method=& ...
- lombok 的bug?lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败
大家好,我是烤鸭: lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败. 环境版本: spring 5.x ...
- java 对象复制 反射_利用Java反射机制实现对象相同字段的复制操作
一.如何实现不同类型对象之间的复制问题? 1.为什么会有这个问题? 近来在进行一个项目开发的时候,为了隐藏后端数据库表结构.同时也为了配合给前端一个更友好的API接口文档(swagger API文档) ...
- C#中JSON和对象之间互相转换功能示例
本文实例讲述了C#实现JSON和对象之间互相转换功能.分享给大家供大家参考,具体如下: 1.首先是声明用户信息对象,DataContract修饰类,表示可以被解析成JSON,DataMember修饰属 ...
- 记录部件中GetFieldControlByFieldName(字段值样式设置)用法
度量快速开发平台中,记录部件上,不单是字段名称可以设置样式,要填入内容的方框也可以设置样式. 通过获取记录部件上某一个字段的输入控件,在二次开发中不常用.该方法只有一个参数,即要获取对象的字段,需要加 ...
- python读json文件中不同的数据类型_怎么使用python提取json文件中的字段
python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...
- json vue 对象转数组_vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
本文实例讲述了vue.js基于v-for实现批量渲染 json数组对象列表数据.分享给大家供大家参考,具体如下: vuejs的出现减轻了对dom的直接操作,同时它提供的 v-for 渲染列表数据也给我 ...
- json 转对象函数_JSON_QUERY()函数从JSON数据提取对象
json 转对象函数 In this article, we will explore JSON_QUERY() functions in SQL Server to extract JSON obj ...
最新文章
- Android 开发笔记(一) 按钮事件调用Activity
- ES cross cluster search跨集群查询
- Another approach to enable table edit in SE16
- 夏利车电动窗功能设定
- Android之提示androidx.recyclerview.widget.LinearLayoutManager@51ddcd is already attached to a RecyclerV
- Linux的I2C 设备驱动 -- mini2440 上i2c接口触摸屏驱动
- django源码阅读
- oracle11g调整表空间和临时表空间大小
- linux 扩lv文件系统,Linux LVM系列(五)lv xfs文件系统在线扩容
- 计算机连接双硬盘,电脑如何安装双硬盘
- 解决夜神模拟器设置了代理后无法上网
- 关闭mongodb数据库 (netstat -lanp | grep “27017“)
- IIS上发布网站遇到的问题总结
- php实现室内地图导航,叠加室内地图-室内地图-示例中心-JS API 示例 | 高德地图API...
- 借助nginx实现反向代理,并通过SSL证书实现https访问以及http调整https访问。
- css解决transform 方法字体抖动
- POJ 1389 Area of Simple Polygons(扫描线求面积)
- 努比亚手机计算机颜色怎么设置,努比亚手机需要掌握的小技巧,提升您的玩机体验...
- 【数值分析】复化积分公式
- 播放器地址抓取 php,PHP实现使用优酷土豆视频地址获取swf播放器分享地址
热门文章
- lede 内核 单 编_openwrt和lede有何区别?
- MLDN学习笔记 —— Annotation
- adobe reader XI 打开后闪退(或过几秒后自动退出)【终极解决方案】
- 怎么用计算机 在名字中间打一个点,外国人名字中间的点怎么打 外国人的名字中间有...
- Asp .Net core 2 学习笔记(1) —— Starup
- 计算机三级数据库知识点
- 虚拟服务器网络无法连接,VMware虚拟机XP系统网络无法连接受限制或无连接解决方法...
- windows10安装oracle10 g客户端
- 把echarts导出成pdf
- MV178——我的心灵家园