zoukankan      html  css  js  c++  java
  • Fastjson Feathure

    转载于: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 把 做转义输出。
     
  • 相关阅读:
    剑指Offer 13.机器人的运动范围
    笔试题目-无向图是否全连通
    面试题目-最小代价的寻路问题
    京东一面问题
    剑指Offer 07.重建二叉树
    剑指Offer 12.矩阵中的路径
    剑指Offer 10-I.斐波那契数列
    剑指Offer 06.从尾到头打印链表
    剑指Offer 05.替换空格
    剑指Offer 04.二维数组中的查找
  • 原文地址:https://www.cnblogs.com/exmyth/p/4563741.html
Copyright © 2011-2022 走看看