转载于: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. HTML 学习笔记

    1HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的. 并且只有这6种标题,标题中加多个空格,和一个空格没区别,标题文字前后加默认空格会被去除. ...

  2. HTML5 File 对象

    实例说明1: <div class="container"> <input type="file" id="file" m ...

  3. merge into Oracle里的 saveOrUapdate

    1.初始数据: SQL> select * from a; ID NAME ---------------------- ---------------------- 1 1 2 1 3 1 4 ...

  4. 【转】 NSString / NSMutableString 字符串处理,常用代码 (实例)

    Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...

  5. 开始学习<p>标签,添加段落

    如果想在网页上显示文章,这时就需要<p>标签了,把文章的段落放到<p>标签中. 语法: <p>段落文本</p> 注意一段文字一个<p>标签, ...

  6. css margin collapse

    css中存在margin collapse,即边界塌陷或边界重叠. http://www.w3cplus.com/css/understanding-bfc-and-margin-collapse.h ...

  7. ar命令和nm命令(建库!)

    ar 命令详解 今天,跟着我们的技术大牛学了不少东西,首先就是这个ar命令啦. 当我们的程序中有经常使用的模块,而且这些模块在其他程序中也会用到,为了实现代码重用减少软件开发周期,我们可以将它们生成库 ...

  8. linux文件系统结构和权限

    linux文件系统的目录结构 熟话说的好,好记性不如烂笔头,虽然没用笔,但动动手指还是可以的.下面的目录结构都是摘抄过来的,动动手指来加深下印象吧,还能练习下打字速度,哈哈,多好啊. ...突然又改变 ...

  9. WebAPI接口测试之matthewcv.WebApiTestClient

    WebAPI接口测试之matthewcv.WebApiTestClient matthewcv.WebApiTestClient 1.安装matthewcv.WebApiTestClient包 打开v ...

  10. 封装兼容性添加、删除事件的函数 addEventListener与removeEventListener

    var Event = { addHandler: function (oElement, sEvent, fnHandler) { oElement.addEventListener ? oElem ...