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 Object, String之间的相互转换工具函数。

  • 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

fastjson——json工具库的更多相关文章

  1. Json 工具介绍 fastjson gson jackson

    1. fastjson fastjson是一个Java语言编写的高性能功能完善的JSON库.它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致, 是目前Java语言中最快的J ...

  2. 常用json解析库比较及选择 fastjson & gson

    一.常用json解析库比较及选择 1.简介 fastjson和gson是目前比较常用的json解析库,并且现在我们项目代码中,也在使用这两个解析库. fastjson 是由阿里开发的,号称是处理jso ...

  3. fastjson是阿里巴巴的开源JSON解析库

    fastjson的API十分简洁. String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseObject("{...}&q ...

  4. 阿里巴巴Json工具-Fastjson讲解

    Fastjson是阿里巴巴公司开源的速度最快的Json和对象转换工具,一个Java语言编写的JSON处理器. 1.遵循http://json.org标准,为其官方网站收录的参考实现之一.2.功能qia ...

  5. Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

    Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...

  6. [Java学习] JSON工具学习记录--FastJSON

    最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fas ...

  7. 强大的json工具:fastJson

    fastJson   FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快!但是文档做得不好,在应用前不得不亲测一些功能.   实际上其他 ...

  8. JSON工具类库: alibaba/fastjson 使用记录

    JSON工具类库: alibaba/fastjson 使用记录 一.了解JSON JSON标准规范中文文档: http://www.json.org/json-zh.html 最佳实践:http:// ...

  9. 不同Json工具对空串和NULL的序列号处理:net.sf.json 和 fastjson

    目录 1.测试代码 2.测试结果: 3.总结: 4.注:Maven中引入net.sf.json的方式 net.sf.json 和 fastjson 对于空串和NULL的处理: 1.测试代码 packa ...

随机推荐

  1. 【网络流24题】最长k可重区间集问题(费用流)

    [网络流24题]最长k可重区间集问题 [问题分析] 最大权不相交路径问题,可以用最大费用最大流解决. [建模方法] 方法1 按左端点排序所有区间,把每个区间拆分看做两个顶点<i.a>< ...

  2. [bzoj3781]小B的询问_莫队

    小B的询问 bzoj-3781 题目大意:给定一个n个数的序列,m次询问.每次询问一段区间内数的种类的平方和. 注释:$1\le n\,m\le 5\cdot 10^4$. 想法:莫队练习题. 我们考 ...

  3. Asp.Net页面生命周期[转]

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  4. Ubuntu安装deb时错误:“dpkg:错误:另外一个进程已经为 dpkg 状态数据库 加锁”解决

    以下方式任选一个即可: 1.重启系统 2.执行(这种方式不要尝试,系统很容易挂) sudo rm /var/lib/dpkg/lock 然后执行修复 sudo dpkg --configure -a

  5. Windows下React Native开发01 -- Android开发环境搭建

    1.安装jdk 推荐将JDK的bin目录加入系统PATH环境变量(自己百度下怎么配置). 2.安装SDK 直接安装 Android Studio  推荐从AndroidDevTools下载.(也可以直 ...

  6. 最全Pycharm教程(37)——Pycharm版本号控制之基础篇

    1.主题 介绍Pycharm的版本号控制系统 2.准备工作 (1)Pycharm版本号为2.7或者更高 (2)已经创建一个project.參见Getting Started tutorial (3)安 ...

  7. using gdb to debug c program

    #include <stdio.h> static void display(int i, int *ptr); int main(void) { int x = 5; int *xptr ...

  8. 用BOOST_FOREACH简化遍历操作

    BOOST_FOREACH能够方便的遍历STL容器. 仅仅须要头文件: #include <boost/foreach.hpp> 然后遍历容器vector/list/set/deque/s ...

  9. Tcl学习之--命名空间

    Tcl解释器将全部的命令和全局变量分组管理.这些小组称为命名空间,一个命名空间中的命令和变量不会影响到还有一个命名空间.这些命名空间呈树形组织.一个命名空间的命令能够被还有一个命名空间引入.命名空间树 ...

  10. 第14章4节《MonkeyRunner源代码剖析》 HierarchyViewer实现原理-装备ViewServer-port转发

    在初始化HierarchyViewer的实例过程中,HierarchyViewer会调用自己的成员方法setupViewServer来把ViewServer装备好,那么我们这里先看下这种方法: 39 ...