zoukankan      html  css  js  c++  java
  • 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 。

  • 相关阅读:
    Springboot 报错 Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    layui时间戳转日期踩坑
    前端 传入Date 为空的解决办法
    解决springdatajpa设置默认值保存null无效的问题
    2020-04-12工作记录
    js原型链继承的傻瓜式详解
    一个关于python装饰器参数的问题
    【转】Unicode utf8等编码类型的原理
    c/c++内存泄露的检测方法
    【转】什么是动态规划?动态规划的意义是什么
  • 原文地址:https://www.cnblogs.com/luoyetl/p/11088895.html
Copyright © 2011-2022 走看看