转载于: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. hdu1230火星A+B (大数题)

    Problem Description 读入两个不超过25位的火星正整数A和B,计算A+B.需要注意的是:在火星上,整数不是单一进制的,第n位的进制就是第n个素数.例如:地球上的10进制数2,在火星上 ...

  2. uva 11673 Garbage Remembering Exam (概率)

    题目链接: http://vjudge.net/problem/viewProblem.action?id=42000 该过程为随即过程,因此总期望值等于个单词对应的期望值,即它们wasted的概率 ...

  3. 关于表单的jQuery练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  4. C#语言的新特性及相关信息

     .ENT版本 NET 2.0 :CLR, WinForms ,Wed Services,ASP.NET NET 3.0 :WCF,WF,WPF,CardSpace NET 3.5 :LINQ ,AJ ...

  5. 【行为型】Iterator模式

    迭代器模式提供一种方法顺序访问聚合对象中的各个元素,而又不需要暴露该聚合对象的内部表示.对于该模式,估计几乎所有的人都使用过,在此直接给出类结构图参考如下: 如前所述,迭代器模式的思想主要是:一能提供 ...

  6. 写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程

    学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...

  7. 省队集训day6 C

    Description 给定平面上的 N 个点, 其中有一些是红的, 其他是蓝的.现在让你找两条平行的直线, 使得在保证    不存在一个蓝色的点 被夹在两条平行线之间,不经过任何一个点, 不管是蓝色 ...

  8. Android 开发中使用 SQLite 数据库

    SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能. 此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP ...

  9. Quartz2D使用

    使用Quartz2D前  先导入QuartzCore.framework //划线 //1.获取图形上下文 CGContextRef ctx=UIGraphicsGetCurrentContext() ...

  10. .Net 4.5 Task

    Task 是 .Net4.0 新出的异步调用方法,粗略看了一下基本对外屏蔽了线程的概念,写异步调用更专注于应用本身. public class Program { static void Main(s ...