博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
控制层解析post请求中json数据的时候,有些属性值为空
阅读量:5103 次
发布时间:2019-06-13

本文共 653 字,大约阅读时间需要 2 分钟。

原因:

  1、默认json数据解析的时候,值会赋给键的首字母是小写的封装的bean中的属性,如果没有首字母小写的属性,也不会报错。
即bean中有getXXX方法时,从json到model会增加xxx属性,有setXXX方法是,从model到json会增加xxx的赋值(其中bean中xxx的首字母必须小写)

  2.在内部类中使用时,不加static变量会不能转换成功

  3.private或protected变量中,缺少get或者set方法会影响转换,而且这些方法中不能有其他的非自动生成的操作,否则这些无关操作也会执行,因为fastjson是通过调用set,get方法来序列化的,而不是根据json串实际的转换,比如:在反序列化时,如果你的get方法中有打log操作,那么会真的给你打一堆log的 (这也说明了fastjson快速的能力是哪里来的,通过调用set,get方法,而不是通过反射,这样可能带来数据的错误,写set,get方法的时候就要完全让自动生成,而不能做其他操作)

 

总结:

    1.所有需要序列化的字段都用public
    2.所有的public方法开头不允许是get或者set
    3.内部类一定要加上public static修饰
    4.遵循以上3条,fastjson即可保证极快速又不会发生错误
    5.如果想用默认的get、set方法,那么bean的属性首字母必须小写

转载于:https://www.cnblogs.com/archimedes-euler/p/10251141.html

你可能感兴趣的文章
Controller比较两个对象discs、outlets中的元素是否相等。相同则相应的checkbox为checked...
查看>>
Android中在布局中写ViewPager无法渲染出来的问题
查看>>
简单shellcode编写
查看>>
centos7配置yum源
查看>>
反射实例化不同类型的实例
查看>>
servletConfig和ServletContext 以及servletContextListener介绍
查看>>
20175236 2018-2019-2 《Java程序设计》第六周学习总结
查看>>
小数据池.深浅拷贝.集合
查看>>
??,int?
查看>>
jQuery.Validate.js验证大表单的优化
查看>>
winform textbox提示历史记录
查看>>
SSM整合(spring mybatis)图书
查看>>
Linux学习笔记--终端命令
查看>>
yii和php的一些细节
查看>>
C++&C面试题100道分析(21-40)
查看>>
Magic Squares
查看>>
关于电脑桌面图标消失并且右键无法点击的情况
查看>>
JAVA窗口2
查看>>
【Alpha】第八次Scrum meeting
查看>>
学习进度条11
查看>>