转载于:http://code.alibabatech.com/wiki/display/FastJSON/Serial+Features

Fastjson序列化时,可以指定序列化的特性,以满足不同的序列化需求。

SerialFeature类的定义

package com.alibaba.fastjson.serializer;
 
public enum SerializerFeature {
    QuoteFieldNames, UseSingleQuotes, WriteMapNullValue, WriteEnumUsingToString, UseISO8601DateFormat, SkipTransientField
}

使用举例

Date date = new Date(1308841916550L);
 
// 缺省输出
System.out.println(JSON.toJSONString(date)); // 1308841916550
 
// 使用特性 UseISO8601DateFormat
// "2011-06-23T23:11:56.550"
System.out.println(JSON.toJSONString(date, SerializerFeature.UseISO8601DateFormat));
 
// 组合两个Feature(UseISO8601DateFormat和UseSingleQuotes)输出日期
SerializerFeature[] features = {SerializerFeature.UseISO8601DateFormat, SerializerFeature.UseSingleQuotes };
System.out.println(JSON.toJSONString(date, features)); // '2011-06-23T23:11:56.550'

详细说明表格

Featurs 缺省值 说明
QuoteFieldNames true 序列化输出字段,使用引号。例如:
QuoteFieldNames Feature Enabled:

{"id":123,
"name":"张三",
"age":23}

QuoteFieldNames Feature Disabled:

{id:123,
name:
"张三",
age:
23}
UseSingleQuotes false 使用单引号而不是双引号
UseSingleQuotes Feature Enabled:

{'id':123,
'name':'张三',
'age':23}

UseSingleQuotes Feature Disabled:

{"id":123,
"name":"张三",
"age":23}
WriteMapNullValue false 空值是否输出。大多数情况,值为null的属性输出是没有意义的,缺省这个特性是打开的。
WriteMapNullValue Feature Enabled:

{'id':123,
'name':'张三',
'age':23,
birthday :
null}

WriteMapNullValue Feature Disabled:

{"id":123,
"name":"张三",
"age":23}
WriteEnumUsingToString false Enum输出name()或者original

public

static

enum

Type {
    Big,
Medium, Small
}
 
System.out.println(JSON.toJSONString(Type.Big));
//
0
System.out.println(JSON.toJSONString(Type.Medium));
//
1
System.out.println(JSON.toJSONString(Type.Small));
//
2
 
System.out.println(JSON.toJSONString(Type.Big,
SerializerFeature.WriteEnumUsingToString));
//
"Big"
System.out.println(JSON.toJSONString(Type.Medium,
SerializerFeature.WriteEnumUsingToString));
//
"Medium"
System.out.println(JSON.toJSONString(Type.Small,
SerializerFeature.WriteEnumUsingToString));
//
"Small"
UseISO8601DateFormat false Date使用ISO8601格式输出

Date
date =
new

Date(1308841916550L);
System.out.println(JSON.toJSONString(date));
//
1308841916550
 
//
"2011-06-23T23:11:56.550"
System.out.println(JSON.toJSONString(date,
SerializerFeature.UseISO8601DateFormat));
SkipTransientField true 如果是true,类中的Get方法对应的Field是transient,序列化时将会被忽略
WriteNullListAsEmpty false list字段如果为null,输出为[],而不是null
WriteNullNumberAsZero false 数值字段如果为null,输出为0,而不是null
WriteNullBooleanAsFalse false Boolean字段如果为null,输出为false,而不是null
WriteNullStringAsEmpty false 字符类型字段如果为null,输出为"",而不是null
SortField false 按字段名称排序后输出
WriteTabAsSpecial false 把\t做转义输出。
 

Fastjson Feathure的更多相关文章

  1. fastjson 混淆注意事项

    使用fastjson 注意事项,主要表现: 1.加了符号Annotation 的实体类,一使用就会奔溃 2.当有泛型属性时,一使用就奔溃 在调试的时候不会报错,当你要打包签名混淆包的时候,就会出现上述 ...

  2. Java的Json解析包FastJson使用

    阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser. ...

  3. fastJson使用

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,由阿里巴巴的工程师开发. 主要特点: 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson ...

  4. FASTJSON

    package com.hanqi.test; import java.util.ArrayList;import java.util.Date;import java.util.List; impo ...

  5. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  6. Android原生json和fastjson的简单使用

    android原生操作json数据 主要是两个类 JSONObject 操作对象     JONSArray操作json数组 对象转json //创建学生对象 Student student=new ...

  7. FastJson的简单实用

    一.FastJson的理解 在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON ...

  8. Android JSON、GSON、FastJson的封装与解析

    声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种 ...

  9. java分享第十三天(fastjson生成和解析json数据,序列化和反序列化数据)

     fastjson简介:Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack ...

随机推荐

  1. Ci 分页类的所有属性总结

    //#######################自定义分页 $config['uri_segment'] = 3;//分页方法自动测定你 URI 的哪个部分包含页数 $config['num_lin ...

  2. ViewPager 嵌套Listview 让Listview响应 ViewPager 左右滑事件

    一段拦截判断而已.   之前一直误解了一个拦截的描述.导致搞了半天. 结论: onInterceptTouchEvent 返回true,就由本身View的onTouchEvent进行事件消费. /** ...

  3. 更新Xcode7 后 .dylib变成了.tbd的问题解决

    拿添加libsqlite3.dylib为例 1.打开你添加的libsqlite3.tbd 文本文件,然后有一行 install-name:    /usr/lib/libsqlite3.dylib   ...

  4. 重新开始学习javase_集合_Map

    一,Map之HashMap(转:http://blog.csdn.net/zheng0518/article/details/42197049) 1.    HashMap概述: HashMap是基于 ...

  5. 用BroadcastReceiver监听网络状态的变化

    在用户浏览网络信息时,如果网络突然断开,可以及时的提醒用户网络已断开.要实现这个功能,我们可以实现一个广播接收者来接收网络状态改变的广播,当由连接状态变为断开状态时,系统会发送一条广播,广播接收者接收 ...

  6. MySQL主从复制详细部署过程

    环境介绍:   采用多实例进行主从复制测试,多实例方法请参考网上其它文档,其实多实例和双服务器对于测试环境来说是一样的.   当前采用3306端口进程为Master,3307端口进程为Slave.   ...

  7. Asp.Net Mvc: 浅析TempData机制(转发 作者: Tristan G )

    Asp.Net Mvc: 浅析TempData机制 环境: Windows 2008, VS 2008 SP1, Asp.Net Mvc 1.0 --------------------------- ...

  8. [oracle]删除一张表中重复数据,保留其id字段最小的sql

    1.表数据结构如下 select * from test t , 'jerry'); , 'jerry'); , 'jerry'); , 'tom'); , 'tom'); , 'jake'); , ...

  9. WebService cxf 接口中获得拦截器参数

    1. 拦截器中put属性 Message message = PhaseInterceptorChain.getCurrentMessage(); message.put("AuthCode ...

  10. jquery 操纵 cookies 插件(1)

    当你浏览某网站时,你硬盘上会生产一个非常小的文本文件,它可以记录你的用户ID.密码.浏览过的网页.停留的时间等信息. 当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应 ...