POJOクラスをシリアル化したいとき、出力をXMLに生成するとき、私が望むように完璧に動作します。 JSONではなくjacksonでジェネリックJSONをシリアライズ
私の主なPOJOクラス
@XmlRootElement(name="result")
@XmlSeeAlso({ResultDataRowItemTest.class})
public class ResultDataRowTest {
private ResultDataRowItemTest response;
public ResultDataRowTest() {}
public ResultDataRowItemTest getResponse() {return response;}
public void setResponse(ResultDataRowItemTest pst) {this.response = pst;}
}
ResultDataRowItemTestクラス:
public class ResultDataRowItemTest<T> {
private T item;
public ResultDataRowItemTest() {}
@JsonTypeInfo(use=Id.NAME, include=As.WRAPPER_OBJECT)
@XmlElements({
@XmlElement(name="user", type=RetUser.class)
})
public T getItem() {return item;}
public void setItem(T pst) {this.item = pst;}
}
RetUserクラス:XML用
@JsonTypeName("user")
@XmlRootElement(name="user")
public class RetUser {
private int userID;
private String userName;
private String firstName;
private String lastName;
public String getUserName() {return userName;}
public void setUserName(String userName) {this.userName = userName;}
public int getUserID() {return userID;}
public void setUserID(int userID) {this.userID = userID;}
public String getFirstName() {return firstName;}
public void setFirstName(String firstName) {this.firstName = firstName;}
public String getLastName() {return lastName;}
public void setLastName(String lastName) {this.lastName = lastName;}
}
結果:
<result>
<response>
<user>
<firstName>John</firstName>
<lastName>Pantau</lastName>
<userID>5</userID>
<userName>JohnP</userName>
</user>
</response>
</result>
は、ここでJSONのための結果です:
{"response":{
"item":{
"user":{
"userID":5,
"userName":"JohnP",
"firstName":"John",
"lastName":"Pantau"
}
}
}}
問題は、どのようにJSONのために「の項目を」オブジェクトを削除するのですか?結果はXMLと似ています。あなたはXMLとJSONのためのジャクソンのためにJAXBを利用しているよう
そうです、私は春を使って休憩サービスを作成します。だから私は戻り値/応答のPOJOクラスを作成する必要があります。これまではXMLで動作します。まだjacksonでJSONを探しています。返信いただきありがとうございます。 – iJusran
jacksonアノテーションを指定することで何を意味するのか説明できますか? – iJusran