Jackson処理Jsonフォーマット関連注記学習
2273 ワード
1.指定されたフィールドは返されません:@JsonIgnore
2.日付フォーマット:@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")を指定します.
3.空のフィールドは返されません:@JsonInclude(Include.NON_NULL)
4.別名の指定:@JsonProperty
テスト:
SimpleController:
Test1:
ユーザーのパスワードフィールドに@JsonIgnoreを付ける
テストの結果:パスワードフィールドが自動的に無視されていることがわかりました
Test2:
ユーザーの誕生日フィールドに:@JsonFormatを追加
テストの結果:ユーザーの誕生日データがフォーマットされていることがわかりました.
Test3:
ユーザのユーザ名フィールドに@JsonInclude(Include.NON_NULL)を付け、ユーザ名属性値をNullにする
テストの結果:ユーザーのユーザー名フィールドが表示されなくなったことが判明しました
注記@JsonInclude(Include.NON_NULL)を追加する前に結果を返します.
注記@JsonInclude(Include.NON_NULL)を追加する前に結果を返します.
Test4:
ユーザーのphoneプロパティに@JsonPropertyコメントを追加します.
テスト結果:ユーザーのphoneのプロパティが「電話番号」に変更されたことがわかりました.
2.日付フォーマット:@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")を指定します.
3.空のフィールドは返されません:@JsonInclude(Include.NON_NULL)
4.別名の指定:@JsonProperty
テスト:
SimpleController:
@GetMapping("/testJson")
Object testJson(){
return new User(11,"13563986965",new Date(),"10010");
}
Test1:
ユーザーのパスワードフィールドに@JsonIgnoreを付ける
@JsonIgnore
private String pwd;
テストの結果:パスワードフィールドが自動的に無視されていることがわかりました
{
"age": 11,
"phone": "13563986965",
"birthday": "2020-05-25T03:00:16.558+00:00"
}
Test2:
ユーザーの誕生日フィールドに:@JsonFormatを追加
@JsonFormat(pattern="yyyy-MM-dd",locale="zh",timezone="GMT+8")
private Date birthday;
テストの結果:ユーザーの誕生日データがフォーマットされていることがわかりました.
{
"age": 11,
"phone": "13563986965",
"birthday": "2020-05-25"
}
Test3:
ユーザのユーザ名フィールドに@JsonInclude(Include.NON_NULL)を付け、ユーザ名属性値をNullにする
@GetMapping("/testJson")
Object testJson(){
return new User(null,11,"13563986965",new Date(),"10010");
}
@JsonInclude(JsonInclude.Include.NON_NULL)
private String userName;
テストの結果:ユーザーのユーザー名フィールドが表示されなくなったことが判明しました
注記@JsonInclude(Include.NON_NULL)を追加する前に結果を返します.
{
"userName": "wjl",
"age": 11,
"phone": "13563986965",
"birthday": "2020-05-25"
}
注記@JsonInclude(Include.NON_NULL)を追加する前に結果を返します.
{
"age": 11,
"phone": "13563986965",
"birthday": "2020-05-25"
}
Test4:
ユーザーのphoneプロパティに@JsonPropertyコメントを追加します.
@JsonProperty(" ")
private String phone;
テスト結果:ユーザーのphoneのプロパティが「電話番号」に変更されたことがわかりました.
{
"userName": "wjl",
"age": 11,
"birthday": "2020-05-25",
" ": "13563986965"
}