在进行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转对象部分字段丢失相关推荐

  1. bug记录--------JSON parse error:Cannot deserialize value of type `com.test.EnumTest` from String

    在查询类型的时候定义了一个枚举EnumTest,这样前端传类型的时候传枚举就可以. 然后在查询的时候报错: JSON parse error:Cannot deserialize value of t ...

  2. java反射实现自定义json转对象方法-忽略字段大小写、字段个数

    java反射实现自定义json转对象方法-忽略字段大小写.字段个数 开发过程中经常会遇到json转对象,可以使用FastJson或者Gson自带的工具类进行转换,但当遇到json与对象属性名称大小写不 ...

  3. 订单 图片(一对多关系),地址保存在一个字段中(Json数组对象格式)

    订单---->图片(一对多关系),地址保存在一个字段中(Json数组对象格式) 1.前端列表动态添加: jsp:<form id="postForm" method=& ...

  4. lombok 的bug?lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败

    大家好,我是烤鸭:     lombok 导致 springmvc 使用 @RequestBody注解 接收 json数据 对象参数绑定失败.     环境版本:         spring 5.x ...

  5. java 对象复制 反射_利用Java反射机制实现对象相同字段的复制操作

    一.如何实现不同类型对象之间的复制问题? 1.为什么会有这个问题? 近来在进行一个项目开发的时候,为了隐藏后端数据库表结构.同时也为了配合给前端一个更友好的API接口文档(swagger API文档) ...

  6. C#中JSON和对象之间互相转换功能示例

    本文实例讲述了C#实现JSON和对象之间互相转换功能.分享给大家供大家参考,具体如下: 1.首先是声明用户信息对象,DataContract修饰类,表示可以被解析成JSON,DataMember修饰属 ...

  7. 记录部件中GetFieldControlByFieldName(字段值样式设置)用法

    度量快速开发平台中,记录部件上,不单是字段名称可以设置样式,要填入内容的方框也可以设置样式. 通过获取记录部件上某一个字段的输入控件,在二次开发中不常用.该方法只有一个参数,即要获取对象的字段,需要加 ...

  8. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段

    python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...

  9. json vue 对象转数组_vue.js基于v-for实现批量渲染 Json数组对象列表数据示例

    本文实例讲述了vue.js基于v-for实现批量渲染 json数组对象列表数据.分享给大家供大家参考,具体如下: vuejs的出现减轻了对dom的直接操作,同时它提供的 v-for 渲染列表数据也给我 ...

  10. json 转对象函数_JSON_QUERY()函数从JSON数据提取对象

    json 转对象函数 In this article, we will explore JSON_QUERY() functions in SQL Server to extract JSON obj ...

最新文章

  1. Android 开发笔记(一) 按钮事件调用Activity
  2. ES cross cluster search跨集群查询
  3. Another approach to enable table edit in SE16
  4. 夏利车电动窗功能设定
  5. Android之提示androidx.recyclerview.widget.LinearLayoutManager@51ddcd is already attached to a RecyclerV
  6. Linux的I2C 设备驱动 -- mini2440 上i2c接口触摸屏驱动
  7. django源码阅读
  8. oracle11g调整表空间和临时表空间大小
  9. linux 扩lv文件系统,Linux LVM系列(五)lv xfs文件系统在线扩容
  10. 计算机连接双硬盘,电脑如何安装双硬盘
  11. 解决夜神模拟器设置了代理后无法上网
  12. 关闭mongodb数据库 (netstat -lanp | grep “27017“)
  13. IIS上发布网站遇到的问题总结
  14. php实现室内地图导航,叠加室内地图-室内地图-示例中心-JS API 示例 | 高德地图API...
  15. 借助nginx实现反向代理,并通过SSL证书实现https访问以及http调整https访问。
  16. css解决transform 方法字体抖动
  17. POJ 1389 Area of Simple Polygons(扫描线求面积)
  18. 努比亚手机计算机颜色怎么设置,努比亚手机需要掌握的小技巧,提升您的玩机体验...
  19. 【数值分析】复化积分公式
  20. 播放器地址抓取 php,PHP实现使用优酷土豆视频地址获取swf播放器分享地址

热门文章

  1. lede 内核 单 编_openwrt和lede有何区别?
  2. MLDN学习笔记 —— Annotation
  3. adobe reader XI 打开后闪退(或过几秒后自动退出)【终极解决方案】
  4. 怎么用计算机 在名字中间打一个点,外国人名字中间的点怎么打 外国人的名字中间有...
  5. Asp .Net core 2 学习笔记(1) —— Starup
  6. 计算机三级数据库知识点
  7. 虚拟服务器网络无法连接,VMware虚拟机XP系统网络无法连接受限制或无连接解决方法...
  8. windows10安装oracle10 g客户端
  9. 把echarts导出成pdf
  10. MV178——我的心灵家园