次のjax-bアノテーションのJackson jsonアノテーションの同等の方法は何ですか?
Xmlではなくjsonを作成する必要があり、jax-bで同等に示される従来のjacksonアノテーションを知る必要があります。
これらの機能は、json/xmlエレメント名がJava "new
"、 "public
"、 "static
"など.
POJOフィールドにそれぞれ「_new _」、「_ public _」、「_ static_」などの名前を付ける必要があるため、
ただし、生成されたXML(およびjson)要素では、jax-bアノテーションを使用して名前を「new」、「public」、「static」などに戻します。
フィールドの名前変更
@XmlAccessorType(XmlAccessType.FIELD)
public class Person{
@XmlElement(required = true)
protected String name;
@XmlElement(required = true)
protected String address;
@XmlElement(name = "contractor")
protected boolean _restricted_ ;
@XmlElement(name = "new")
protected boolean _new_ ;
}
プロパティゲッターの使用にリダイレクト(jax-bでこれが行われる方法だと思います)
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Person{
protected String name;
protected String address;
protected boolean _restricted_ ;
protected boolean _new_ ;
@XmlElement(required = true)
protected String getName() {return name;}
@XmlElement(required = true)
protected String getAddress() {return address;}
@XmlElement(name = "contractor")
protected boolean getRestricted() {return _restricted_;}
@XmlElement(name = "new")
protected boolean getNew(){return _new_;}
}
おそらく少し遅いですが、とにかく..
追加するだけでプロパティの名前を変更できます
@JsonProperty("contractor")
デフォルトでは、Jacksonはgetterとsetterを使用してシリアル化と逆シリアル化を行います。
いくつかの例では、ゲッターとセッターで使用して別のフィールドに名前を変更することもできます
public class Sample {
private String fruit;
@JsonProperty("get_Apple")
public void setFruit(String fruit) {
this.fruit = fruit;
}
@JsonProperty("send_Apple")
public String getFruit() {
return fruit;
}
}
このための適切なJavaEE APIはjavax.json.bind.annotation.JsonbProperty
注釈。もちろん、JacksonなどはJSON Binding APIの単なる実装であり、おそらくこれに準拠しています。