fastjson,gson,jackson,进⾏序列化与反序列化
⼀、Jackson
Jackson可以轻松的将Java对象转换成json对象和xml⽂档,同样也可以将json、xml转换成Java对象。
2、解析原理:
基于事件驱动,与GSON相同,先创建⼀个对应于JSON数据的JavaBean类就可以通过简单的操作解析出所需JSON数据。但和Gson解析不同的是,GSON可按需解析,即创建的JavaBean类不⼀定完全涵盖所要解析的JSON数据,按需创建属性,但Jackson解析对应的JavaBean必须把Json数据⾥⾯的所有key都有所对应,即必须把JSON内的数据所有解析出来,⽆法按需解析。但Jackson的解析速度和效率都要⽐GSON⾼
3、优势
1、解析效率最⾼
2、在数据量⼤的情况优势尤为明显、占存少
4、缺点
必须完全解析⽂档,如果要按需解析的话可以拆分Json来读取,操作和解析⽅法复杂;
5、推荐使⽤情景
适⽤于需要处理超⼤型JSON⽂档、不需要对JSON⽂档进⾏按需解析、、性能要求较⾼的场合
⼆、Gson
fastjson忽略属性1、简介:
Google提供的⽤来java对象和JSON数据之间进⾏映射的JAVA类库,可以将⼀个JSON字符转成⼀个java对象,反过来也OK。
3、优势
1、快速,⾼效
2、代码量少
3、⾯向对象
4、数据传输解析⽅便
4、注意事项
1、内部嵌套的类必须是static的,要不然解析会出错;
2、类⾥⾯的属性名必须跟Json字段⾥⾯的Key是⼀模⼀样的;
3、内部嵌套的⽤[]括起来的部分是⼀个List,所以定义为 public List< B> b,⽽只⽤{}嵌套的就定义为 public C c,是不是很简单,⽽且现在android studio上可以直接⽤插件⽣成实体类,那更加⽅便了
三、FastJson
1、简介:
FastJson是阿⾥巴巴公司提供的⼀个⽤Java语⾔编写的⾼性能功能完善的JSON库,该库涉及的最基本功能就是序列化和反序列化。Fastjson⽀持java bean的直接序列化,同时也⽀持集合、Map、⽇期、Enum和泛型等的序列化。你可以使⽤com.alibaba.fastjson.JSON 这个类进⾏序列化和反序列化,常⽤的序列化操作都可以在JSON类上的静态⽅法直接完成。Fastjson采⽤独创的算法,将parse的速度提升到极致,号称超过所有Json库。⽽且,使⽤Fastjson解析时,除了需要使⽤Fastjson所提供的jar包外,再不需要额外的jar包,就能够直接跑在JDK上。
2、解析原理:
基于事件驱动,与GSON相同,先创建⼀个对应于JSON数据的JavaBean类就可以通过简单的操作解析出所需JSON数据。但和Gson解析不同的是,GSON可按需解析,即创建的JavaBean类不⼀定完全涵盖所要解析的JSON数据,按需创建属性,但Jackson解析对应的JavaBean必须把Json数据⾥⾯的所有key都有所对应,即必须把JSON内的数据所有解析出来,⽆法按需解析。但Jackson的解析速度和效率都要⽐GSON⾼
3、优势
1、快速FAST(⽐任何⼀款都快)
2、⾯向对象
3、功能强⼤(⽀持普通JDK类任意java bean Class,Collection,Map,Date或者enum)
4、零依赖(只需要有JDK即可)
5、⽀持注解,全类型序列化
本⽂借鉴,更多细节看这篇⽂章
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论