上次把原生json替换成了fastjson,发生很多地方不兼容,对这个也做了一些总结:

1、对于没有赋值的变量处理,json-lib会根据类型给出相应初始值,而fastjson直接忽略这个字段。
解决方式:转换时传入两个参数:SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty
加入WriteMapNullValue后,这个字段将不会被忽略,但是值是null,
加入WriteNullStringAsEmpty,将null改成空字符串。
针对数字、布尔类型,还有WriteNullNumberAsZero、WriteNullBooleanAsFalse等。
2、对于斜杠的处理,json-lib会将“/”转义成“\/”,而fastjson保持原样。
解决方式:如果要让fastjson对于斜杠进行转义,在转换时传入参数:SerializerFeature.WriteSlashAsSpecial。
3、fastjson的引用,当List里有多个元素的某些属性值相同,后面元素的属性会引用第一个元素的属性,里面的值会写成类似$ref:$.members[0].reportTo的形式,这样可以减少数据量,但是有时候引用无法被识别。
解决方式:转换时传入SerializerFeature.DisableCircularReferenceDetect参数,关闭引用,结果和json-lib的方式相同。
4、对于getter方法的识别。tYbdm这样的字段,用MyEclipse自动生成的get方法是gettYbdm,json-lib能够识别,但fastjson不行。
解决方式:严格的驼峰命名方式,比如getTYbdm
或者在属性上面加上@JSONField注解

转载于:https://www.cnblogs.com/attlia/p/3660714.html

fastjson和json-lib的区别相关推荐

  1. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...

  2. json 中关于json数组跟json对象的区别

    JSON 是存储和交换文本信息的语法:JSON 文本格式在语法上与创建 JavaScript 对象的代码相同.由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数, ...

  3. json.dumps()、json.dump()、json.loads()和json.dumps()的区别

    json.dumps().json.dump().json.loads()和json.dumps()的区别 json.dumps()用于将字典形式的数据转化为字符串 json.loads()用于将字符 ...

  4. FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  5. fastjson解析json简介

    2019独角兽企业重金招聘Python工程师标准>>> 一.简介 阿里巴巴FastJson是一个Json处理工具包,是一个Java语言编写的高性能功能完善的JSON库.,包括&quo ...

  6. fastjson读取json配置文件

    fastjson读取json配置文件: ClassLoader loader=FileUtil.class.getClassLoader();InputStream stream=loader.get ...

  7. fastjson对json操作

    fastjson对json字符串JSONObject和JSONArray互相转换操作示例  fastjson的方法: Fastjson API入口类是com.alibaba.fastjson.JSON ...

  8. java json lib 日期

    2019独角兽企业重金招聘Python工程师标准>>> java json lib 日期 博客分类: java JSONObject jsonPerson = JSONObject. ...

  9. json.stringify()与json.parse()的区别,json.stringify()的妙用

    一.JSON.stringify()与JSON.parse()的区别 最近做项目,发现JSON.stringify()使用场景真的挺多,我们都知道JSON.stringify()的作用是将 JavaS ...

  10. Atitit.json类库的设计与实现 ati json lib

    Atitit.json类库的设计与实现 ati json lib 1. 目前jsonlib库可能有问题,可能版本冲突,抛出ex1 2. 解决之道:1 2.1. 自定义json解析库,使用多个复合的js ...

最新文章

  1. Uber 前无人驾驶工程师告诉你,国内无人驾驶之路还要走多久?
  2. 第18章 多线程----线程同步
  3. java 容器的嵌套_java界面设计里怎么实现容器嵌套
  4. php怎么爬取亚马逊的数据,使用PHP从Amazon MWS API获取订单数据
  5. 06HTML基础--多媒体标签
  6. linux环境下安装mysql 8.0
  7. Android 动画AlphaAnimation类方法
  8. Python | 如何强制除法运算为浮点数? 除数一直舍入为0?
  9. mybatis 调用 oracle函数_从Oracle到PG 该做的改造工作一个都不能少!
  10. php led显示屏控制软件下载,中航led控制软件
  11. 511 排序预演_最小数简单置前
  12. 进制转换简单实现代码
  13. 从coursera网站自动下载网课视频(Linux中bash操作)
  14. 低频理疗按摩仪8种常用基本波形
  15. mmdetection训练 显卡选择
  16. js添加多marker 高德地图_覆盖物-参考手册-地图 JS API | 高德地图API
  17. 思科虚拟服务器修改域名,思科域名服务器设置
  18. CRF和CQP的区别
  19. Java学成什么样,可以出去找实习工作?
  20. C语言字符5,C语言字符数据(4、5).doc

热门文章

  1. SpringMVC文件上传笔记
  2. java基础第九天_多线程、自动拆装箱
  3. 过滤Android工程中多余的资源文件
  4. 可变化的鸿蒙武器,DNF2018史诗改版大全 武器套装改版属性介绍
  5. Java 8 为什么要使用Lambda表达式
  6. sci写作sci写作模板_2020年写作主题
  7. CPU使用率,Blender顶级视频教程,Python,Linux,Stratis,Pidgin等
  8. 2017 开源软件排行_2017年最佳开源教程
  9. ubuntu 开源镜像_Ubuntu手机可能对开源意味着什么
  10. 高性能滚动scroll(防抖和节流)