1.我们以Person对象举个栗子,person有三个属性。name,age和isGay

@Data
public class Person {public Person(String name, int age, boolean isGay) {this.name = name;this.age = age;this.isGay = isGay;}private String name;private Integer age;private boolean isGay;
}

2.使用jackson和fastJson测试。首先实例化一个yaohenghui对象,然后分别使用jackson和fastJson解析成字符串。

    public static void main(String[] args) throws JsonProcessingException {Person person = new Person(11, true);ObjectMapper objectMapper = new ObjectMapper();String jacksonStr = objectMapper.writeValueAsString(person);String fastJsonStr = JSON.toJSONString(person);System.out.println("jacksonStr------" + jacksonStr);System.out.println("fastJsonStr------" + fastJsonStr);}

问题(一)当使用原始类型boolean,若字段以is开头,解析时is会被去掉。

上面的栗子运行的结果如下:

我们可以看到使用原始boolean时jackson和fastJson都将isGay字段的is去掉了。这是目前两者的解析机制决定,开发时需要注意。

问题(二)当jackson使用字段名转换注解@JsonProperty时,会出现isGay和gay两个字段。

person修改:

增加jackson和fastJson的字段名转换注解

@JsonProperty("isGay")

@JSONField(name = "isGay")

@Data
public class Person {public Person(String name, int age, boolean isGay) {this.name = name;this.age = age;this.isGay = isGay;}private String name;private Integer age;@JsonProperty("isGay")@JSONField(name = "isGay")private boolean isGay;
}

输出结果:

我们能看到,fastJson是正常的,但是jackson多了一个字段。

当我们将字段名由isGay改为gay:

@Data
public class Person {public Person(String name, int age, boolean isGay) {this.name = name;this.age = age;this.gay = isGay;}private String name;private Integer age;@JsonProperty("isGay")@JSONField(name = "isGay")private boolean gay;
}

这时结果恢复正常:

说明:

当使用包装类型Boolean时,无论字段名是isGay或者gay都能成功的解析成isGay或者gay,@JsonProperty("isGay")和@JSONField(name = "isGay")也能正常使用,没有任何问题。所以pojo中推荐使用Boolean。同时我们最好遵照阿里的规范,布尔类型字段的命名尽量不要带is。如下说明:

jackson/fastJson boolean类型问题相关推荐

  1. 简单易懂的Json的使用教程(jackson/fastjson)

    Json的使用 前言 写好了一个项目,总结一下jason的使用,String类型的数据与Jason类型的数据之间相互转化的json解析工具有:Jackson,阿里巴巴的fastjson.本篇文章着重介 ...

  2. 22-05-29 西安 javaweb(11) ajax、axios、gson/jackson/fastjson

    ajax  异步的JavaScript和XML js中的一个技术,实现前后端分离,前后端分离就是分服务器部署,彻底舍弃了thymeleaf. ajax中必须使用响应浏览器数据,不能是请求转发和重定向 ...

  3. 深度对比Jackson和Fastjson,最终我还是选择了...

    点击关注公众号,Java干货及时送达 来源:cnblogs.com/larva-zhh/p/11544317.html 为什么要替换fastjson 框架选型 替换fastjson Deseriali ...

  4. jackson、fastjson、kryo、protostuff等序列化工具性能对比

    简介 实际项目中,我们经常需要使用序列化工具来存储和传输对象.目前用得比较多的序列化工具有:jackson.fastjson.kryo.protostuff.fst 等,本文将简单对比这几款工具序列化 ...

  5. 主流JSON引擎性能比较(GSON,FASTJSON,JACKSON,JSONSMART)

    JsonPerformanceVS 主流JSON引擎性能比较(GSON,FASTJSON,JACKSON,JSONSMART) 文章目录 JsonPerformanceVS 前言 测试目的: Purp ...

  6. 废弃fastjson!大型项目迁移Gson保姆级实战

    前言 本篇文章是我这一个多月来帮助组内废弃fastjson框架的总结,我们将大部分Java仓库从fastjson迁移至了Gson. 这么做的主要的原因是公司受够了fastjson频繁的安全漏洞问题,每 ...

  7. 大型项目废弃fastjson迁移至Gson保姆级攻略

    前言 大家好,又双叒叕见面了,我是天天放大家鸽子的蛮三刀. 在被大家取关之前,我立下一个"远大的理想",一定要在这周更新文章.现在看来,flag有用了... 本篇文章是我这一个多月 ...

  8. fastjson list转json字符串_程序员:JSON、JSONObject 与 JSONArray 简单讲解

    fastjson简介 fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 ...

  9. 常用json框架介绍和Jackson返回结果处理

    常用json框架介绍和Jackson返回结果处理     简介:介绍常用json框架和注解的使用,自定义返回json结构和格式 1.常用框架 阿里 fastjson,谷歌gson等         J ...

最新文章

  1. RabbitMQ 简介以及使用场景
  2. R语言绘制堆叠面积图
  3. 深入解析和反思携程宕机事件
  4. Guava RateLimiter限流源码解析和实例应用
  5. ASP.NET MVC5 高级编程 第3章 视图
  6. 传值类型_what?你竟然不知道C#中的方法及参数的类型解析!那还不快来瞅瞅
  7. 机器视觉:Caffe Python接口多进程提取特征
  8. android开机自动打开微信小程序,Android APP拉起小程序界面 (微信未启动 打不开)...
  9. 为什么会有那么多人放弃编程?
  10. 苹果为什么收购英特尔手机基带业务?库克解释了一下
  11. 20个使用柔和的色调的优秀网站设计示例
  12. shell-最近7天目录
  13. 基于CNN的中文文本分类算法(可应用于垃圾文本过滤、情感分析等场景)
  14. 国际图形学大会(SIGGRAPH)2017届主席竞选答辩是如此场景
  15. windows进程间通信
  16. 学习笔记-状态方程精确离散化
  17. 爬取大麦网演出信息保存为CSV文件并制作词云
  18. 在本地如何启动Vue项目
  19. 石膏板建筑材料英国UKCA认证—EN 520
  20. 前端网络——get和post的区别

热门文章

  1. 广州科目三路考经历与注意事项分享
  2. Jackson使用:String 与对象互转、Jackson 从 json 字符串转换出对象
  3. iOS有哪些数据类型/基本数据类型?
  4. tomcat是否有必要配置环境变量(摘)
  5. 总结Selenium WebDriver中一些鼠标和键盘事件的使用
  6. EcmaScript对象克隆之谜
  7. SharpZipLib 压缩ZIP导出
  8. 解决pip安装模块报错Cannot fetch index base URL http://pypi.python.org/simple/
  9. ForkJoinPool 学习示例
  10. js作用域与作用域链