fastJson

fastjson

alibaba fastjson是阿里巴巴公司开源维护的一个处理json格式数据的java工具库。

功能特性:

  • 数据绑定databind (json string <--> java object, JSON <--> java object)
  • 保持单一对象。序列化时相同的java对象引用只会在一个地方序列化一次,另外的引用地方以特殊的引用表述,反序列化后保证了与序列化之前单一java对象的数据引用视图。
  • json中基本类型(数字、字符串、布尔等标量)的容器有两种,对象和数组,在fastjson中分别对应类JSONObjectJSONArray,他们有共同父类JSON。json对象是键值对集合,相应的JSONObject蕴含键值对集,实现了接口Map<String,Object>;json数组是元集合,相应的JSONArray实现了接口List<Object>

    JSON类中还包含各种JSON, java ObjectString之间的相互转换工具函数。

    • JSON.toJSONString(Object,SerializeConfig=SerializeConfig.globalInstance,...)函数的功能是将java对象序列化为json字符串。SerializeConfig参数是关于序列化的配置,默认使用全局共享实例SerializeConfig.globalInstance。SerializeConfig可通过.config(Class<?> clazz, SerializerFeature feature, boolean value)为给定类打开/关闭多种序列化特性,所有特性在枚举SerializerFeature中。对于java bean(或所有将转换为json字符串的java对象),配置特性WriteMapNullValue可控制null值字段是否需要序列化出。

    • JSON.toJSON(Object,SerializeConfig=SerializeConfig.globalInstance)将java bean对象转换为JSONObject(Map对象)。需要注意的是,尽管该函数接受SerializeConfig,且不论WriteMapNullValue特性是否关闭,转换出的JSONObject对象都会包含java bean的null值字段,也就说SerializeConfig的WriteMapNullValue特性对于转换为JSONObject无用,但对于转换为字符串管用,同时在观察转为JSON.toJSON中SerializeConfig的WriteMapNullValue特性是否有用时需注意不能以System.out.println(JSONObject)打印输出来观察,因为其输出已调用JSONObject.toString将JSONObject对象转为了json字符串,转换为json string的过程涉及了WriteMapNullValue特性。

    各jvm序列化器(包含数个json库)性能对比结果见 https://github.com/eishay/jvm-serializers/wiki 。

转载于:https://www.cnblogs.com/luoyetl/p/11088895.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值