0
Jacksonを使用してXMLを解析しようとしています。しかし、解析するときに要素から始める方法を理解することはできません。このAPIコールは、1以上を返すことはありません:Jacksonを使用して子要素からXMLを逆シリアル化する
<return_data api_call="get">
<users>
<user>
<username>jdoe</username>
<firstname>John</firstname>
<lastname>Doe</lastname>
<account_expiration_date>0000-00-00</account_expiration_date>
<signup_date>2015-01-01 15:00:36</signup_date>
<deleted>0</deleted>
<account_name>my account</account_name>
</user>
</users>
</return_data>
私は次のことを試してみましたが、エラーになっています「認識できないフィールド 『ユーザー』 ...無視としてマークされていません」。
@JacksonXmlRootElement(localName = "user")
@JsonIgnoreProperties(value = { "api_call" })
public class User {
@JsonProperty("username")
private String userName;
@JsonProperty("firstname")
private String firstName;
@JsonProperty("lastname")
private String lastName;
@JsonProperty("account_expiration_date")
private Date expirationDate;
@JsonProperty("deleted")
private boolean deleted;
@JsonProperty("signup_date")
private Date signupDate;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
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;
}
public Date getExpirationDate() {
return expirationDate;
}
public void setExpirationDate(Date expirationDate) {
this.expirationDate = expirationDate;
}
public Date getSignupDate() {
return signupDate;
}
public void setSignupDate(Date signupDate) {
this.signupDate = signupDate;
}
}
更新: は、私はそれが複数のラッパーを使用して動作させることができましたが、私は簡単に解決策があると願っています。
@JsonIgnoreProperties(value = { "api_call" })
public class ReturnDataWrapper {
@JacksonXmlElementWrapper(localName = "users")
@JsonProperty("users")
private UserWrapper userWrapper;
public UserWrapper getUserWrapper() {
return userWrapper;
}
public void setUserWrapper(UserWrapper userWrapper) {
this.userWrapper = userWrapper;
}
}
@JacksonXmlRootElement(localName = "users")
@JsonRootName("users")
public class AlertAccountWrapper {
@JacksonXmlElementWrapper(localName = "user")
@JsonProperty("user")
public User account;
public User getUser() {
return account;
}
public void setUser(User account) {
this.account = account;
}
}
Iも除去@JacksonXmlRootElement(ローカル名= "ユーザ")とUserクラスから@JsonIgnoreProperties(値= { "api_call"})。