SpringBoot|Jsonエンティティークラスのプロパティの大文字と小文字の問題を返します
1429 ワード
質問:
フロントエンドで使用するパラメータが標準的なアルパカ式ではなく大文字の場合、バックグラウンドでパラメータのインタラクションを行うとパラメータが受信できないという問題が発生します.
例えば、フロントエンドはTitleを使用し、バックエンドエンティティクラスは中国式titleのように統一されていない.
解決:JackjsonとFastjsonの2つの方法
注記をプロパティに配置すると、次のように大文字と小文字が返されます.
@JsonProperty("Ao")
private Integer Ao;
responseBody応答結果:
{Ao:xxx,ao:xxx}
注記はgetterに置いて完璧に解決し、大文字だけが自動的に小文字にならない問題を返します.
@JsonProperty("Ao")
public Integer getAo() {
return Ao;
}
responseBody応答結果:{Ao:xxx}
https://github.com/alibaba/fastjson/wiki/JSONField
注釈によるシーケンス化と逆シーケンス化の指定
// get,set
public class A {
private int id;
@JSONField(name="ID")
public int getId() {return id;}
@JSONField(name="ID")
public void setId(int value) {this.id = id;}
}
// field
public class A {
@JSONField(name="ID")
private int id;
public int getId() {return id;}
public void setId(int value) {this.id = id;}
}
// format
public class A {
// date yyyyMMdd
@JSONField(format="yyyyMMdd")
public Date date;
}