ジャクソンマニュアル

引用のjar:ジャクソン・コア、ジャクソン・データバインド、ジャクソン、注釈

http://central.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.9.9/jackson-annotations-2.9.9.jar

http://central.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar

http://central.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar

1、ジャクソン基本的な使い方

1.1、Personオブジェクトを作成します

パブリック クラス人{
     プライベート文字列名;
    プライベート整数歳。

    公共パーソン(文字列名、整数歳){
         この .nameの= 名前;
        この .age = 年齢; 
    } 

    パブリック文字列のgetName(){
         戻り名。
    } 
}

1.2、Mainメソッドの呼び出し

注:オブジェクトは、プロパティは、JSONは(注釈メソッドを除く)メソッドを取得有効にする必要があり

輸入com.fasterxml.jackson.databind.ObjectMapper。

パブリック クラスメイン{
     公共 静的 ボイドメイン(文字列[]アルジェシュ)がスロー例外{ 
        ObjectMapperマッパー = 新しいObjectMapper()。
        人の人 = 新しい人( "ジャクソン"、20 ); 
        System.out.println(mapper.writeValueAsString(人)); 
    } 
}

出力は次のようになります。

{ "名前": "ジャクソン"}

2、注釈の使用

2.1、JsonPropertyはアノテーションを使用@

@JsonProperty注釈SQLエイリアスフィールドに類似の、注釈のフィールドプロパティを使用して、一連の、元のフィールドのプロパティを置き換えます

@JsonProperty( "userNameに" プライベート文字列名;

結果の順序:直列化されたJSON文字列では、ユーザ名は名前を置き換えます

{ "userNameに": "ジャクソン"}

2.2、@ JsonIgnore使用注釈

シリアライズ時に@JsonIgnoreコメントがフィールドを無視することです

  @JsonIgnore 
    @JsonProperty( "userNameに" プライベート文字列名; 
    @JsonProperty(「userAge」プライベート整数歳。

シリアライゼーションの結果は:{ "userAge":20}

{ "userAge":20}

2.3、JsonIgnorePropertiesはアノテーションを使用@

類似@JsonIgnorePropertiesの配列と2.3.1は、注釈フィールドエイリアスを使用して、クラス、@JsonIgnore

輸入com.fasterxml.jackson.annotation.JsonIgnore。
輸入com.fasterxml.jackson.annotation.JsonIgnoreProperties。
輸入com.fasterxml.jackson.annotation.JsonProperty。

@JsonIgnoreProperties(値 = { "名前"、 "userAge" })
 パブリック クラス人{ 
    @JsonIgnore 
    @JsonProperty( "userNameに" プライベート文字列名。
    @JsonProperty(「userAge」プライベート整数歳。
    @JsonProperty(「userHeight」プライベート整数の高さ。

    パブリック人物(文字列名、整数年齢、整数高さ){
         この .nameの= 名前。
        この .age = 年齢;
        この .height = 高さ; 
    } 
}
ObjectMapperマッパー= 新しいObjectMapper(); 
人の人 = 新しい人(「ジャクソン」、20175 ); 
System.out.println(mapper.writeValueAsString(人));

実行結果:{ "userHeight":175}

{ "userHeight":175}

2.3.2、JsonIgnoreProperties(ignoreUnknown =真@ ) フィールドを無視するためには、(DeserializationFeatureを等価mapper.disableと一致しないFAIL_ON_UNKNOWN_PROPERTIES)。

注意:直列化復元は、引数なしのコンストラクタが必要

ObjectMapperマッパー= 新しいObjectMapper(); 
人の人 = 新しい人(「ジャクソン」、20175 ); 
System.out.println(mapper.writeValueAsString(人)); 
// mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)。
System.out.println(mapper.readValue( "{\" sheight \ ":172}"、人クラス).getHeight())。

2.4 @ JsonTypeName @JsonTypeInfo

@JsonTypeName(値= "ユーザ")
@JsonTypeInfo(=含むJsonTypeInfo.As.WRAPPER_OBJECT、使用= JsonTypeInfo.Id.NAME)

層が順に増加しています

シリアライゼーションの結果は:{ "ユーザ":{ "高さ":175}}

{ "ユーザ":{ "高さ":175}}

2.5、@ JsonRootNameコメント

  注釈@JsonRootName(「ユーザ」)とmapper.enable(SerializationFeature.WRAP_ROOT_VALUE)に基づいて、2.4に等しい組成物。

2.6、JsonFormat注釈形式の日付形式@

@JsonFormat(パターン= "YYYY-MM-DD HH:MM:SS:SSS"、タイムゾーン= "GMT + 8")
    プライベート日付。

 

おすすめ

転載: www.cnblogs.com/miaosj/p/10936451.html