前言:
而今小伙伴们对“java实体转json字符串导入jar包且注解但不起作用”大致比较关心,你们都需要知道一些“java实体转json字符串导入jar包且注解但不起作用”的相关知识。那么小编在网上汇集了一些关于“java实体转json字符串导入jar包且注解但不起作用””的相关知识,希望大家能喜欢,咱们快快来了解一下吧!Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。
常用的 JSON 类库:
FastJson: 阿里巴巴开发的 JSON 库,性能优秀。Jackson: 社区十分活跃且更新速度很快。Gson: 谷歌开发的 JSON 库,功能十分全面。
相关源码、文档可前往github查看。
FastJson
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
优点:
提供服务器端、安卓客户端两种解析工具,性能表现较好。提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。允许转换预先存在的无法修改的对象(只有class、无源代码)。Java泛型的广泛支持。允许对象的自定义表示、允许自定义序列化类。支持任意复杂对象(具有深厚的继承层次和广泛使用的泛型类型)。
缺点:
FastJson 源码质量较低FastJson Bug、漏洞较多FastJson 牺牲多数场景下的稳定性而提高的效率
ps:fastjson2在2022年发布了,它是fastjson的重要升级,目标是为下一个十年提供一个高性能的JSON库, fastjson2性能相比原先旧的 fastjson有了很大提升,并且 fastjson2更安全,完全删除autoType白名单,提升了安全性。但是是否像官方说的那样有巨大提升,我们还要拭目以待。
JackSon
3个核心模块:
Streaming: jackson-core jar,定义了底层的streaming API和实现了Json特性。Annotations: jackson-annotations jar,包含了标准的Jackson注解。本文暂不介绍。Databind: jackson-databind jar,实现了数据绑定和对象序列化,它依赖于streaming和annotations的包。
优点:
性能较高,解析速度快。支持多种数据格式,包括JSON、XML、YAML等。支持数据绑定,可以将JSON数据直接绑定到Java对象上。支持注解,可以通过注解来控制序列化和反序列化的过程。社区活跃,文档齐全,使用广泛。
缺点:
配置较为复杂,需要掌握较多的API。对于复杂的数据结构,需要手动编写代码来处理。Gson
Gson是谷歌开发的 JSON 库,目前功能最全的 JSON 库,它可以将Java对象转换为相应的JSON形式,也可以将JSON字符串转换为对应的Java对象。 Gson可以使用任意Java对象,包括哪些预先存在的、不在你的源代码中的对象(因此,你并不知道对象的属性)。
优点:
轻量简洁功能全面
缺点:
性能对比Fastjson、jackson稍差