1. 程式人生 > >fastjson中SerializerFeature的用法及中文註解

fastjson中SerializerFeature的用法及中文註解

原始碼:

package com.alibaba.fastjson.serializer;
/**
 * @author wenshao<[email protected]>
 */
public enum SerializerFeature {
    QuoteFieldNames,//輸出key時是否使用雙引號,預設為true 
    /**
     * 
     */
    UseSingleQuotes,//使用單引號而不是雙引號,預設為false
    /**
     * 
     */
    WriteMapNullValue,//是否輸出值為null的欄位,預設為false 
    /**
     * 
     */
    WriteEnumUsingToString,//Enum輸出name()或者original,預設為false
    /**
     * 
     */
    UseISO8601DateFormat,//Date使用ISO8601格式輸出,預設為false
    /**
     * @since 1.1
     */
    WriteNullListAsEmpty,//List欄位如果為null,輸出為[],而非null 
    /**
     * @since 1.1
     */
    WriteNullStringAsEmpty,//字元型別欄位如果為null,輸出為"",而非null 
    /**
     * @since 1.1
     */
    WriteNullNumberAsZero,//數值欄位如果為null,輸出為0,而非null 
    /**
     * @since 1.1
     */
    WriteNullBooleanAsFalse,//Boolean欄位如果為null,輸出為false,而非null
    /**
     * @since 1.1
     */
    SkipTransientField,//如果是true,類中的Get方法對應的Field是transient,序列化時將會被忽略。預設為true
    /**
     * @since 1.1
     */
    SortField,//按欄位名稱排序後輸出。預設為false
    /**
     * @since 1.1.1
     */
    @Deprecated
    WriteTabAsSpecial,//把\t做轉義輸出,預設為false
    /**
     * @since 1.1.2
     */
    PrettyFormat,//結果是否格式化,預設為false
    /**
     * @since 1.1.2
     */
    WriteClassName,//序列化時寫入型別資訊,預設為false。反序列化是需用到

    /**
     * @since 1.1.6
     */
    DisableCircularReferenceDetect,//消除對同一物件迴圈引用的問題,預設為false

    /**
     * @since 1.1.9
     */
    WriteSlashAsSpecial,//對斜槓'/'進行轉義

    /**
     * @since 1.1.10
     */
    BrowserCompatible,//將中文都會序列化為\uXXXX格式,位元組數會多一些,但是能相容IE 6,預設為false

    /**
     * @since 1.1.14
     */
    WriteDateUseDateFormat,//全域性修改日期格式,預設為false。JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);

    /**
     * @since 1.1.15
     */
    NotWriteRootClassName,//暫不知,求告知

    /**
     * @since 1.1.19
     */
    DisableCheckSpecialChar,//一個物件的字串屬性中如果有特殊字元如雙引號,將會在轉成json時帶有反斜槓轉移符。如果不需要轉義,可以使用這個屬性。預設為false 

    /**
     * @since 1.1.35
     */
    BeanToArray //暫不知,求告知
    ;

    private SerializerFeature(){
        mask = (1 << ordinal());
    }

    private final int mask;

    public final int getMask() {
        return mask;
    }

    public static boolean isEnabled(int features, SerializerFeature feature) {
        return (features & feature.getMask()) != 0;
    }

    public static int config(int features, SerializerFeature feature, boolean state) {
        if (state) {
            features |= feature.getMask();
        } else {
            features &= ~feature.getMask();
        }

        return features;
    }
}

用法:

JSONObject outParam1=new JSONObject ();

String str = JSONObject.toJSONString(outParam,SerializerFeature.WriteNullStringAsEmpty);





相關推薦

no