0
我无法获取发送给pojo的json字符串。将jsonnode转换为pojo
com.fasterxml.jackson.databind.JsonMappingException:无法反序列化com.sg.info.Account的情况下进行的[来源START_ARRAY令牌 的:[email protected];行:1,柱:1]
这是JSON
[{"accno":9210255,"type":"Stock- and mutual funds account","default":true,"alias":"Karlsson Joachim"}]
解析
public void getAccounts()
{
ObjectMapper mapper = new ObjectMapper();
String resp = Login.getBaseResource().path("accounts").request(Login.getResponsetype()).get(String.class);
try {
account = mapper.readValue(resp, Account.class);
POJO
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown=true)
public class Account {
public Account() {
}
private long accno;
private String type;
@JsonProperty("default")
private String isDefault;
private String alias;
public long getAccno() {
return accno;
}
public void setAccno(long accno) {
this.accno = accno;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
@Override
public String toString() {
return "Account [accno=" + accno + ", type=" + type + ", alias="
+ alias + "]";
}
public String isDefault() {
return isDefault;
}
@JsonProperty("default")
public void setDefault(String isDefault) {
this.isDefault = isDefault;
}
}
这是有效的,但是对于数组类型,也有一个不太出名的漂亮短小猫:只需将'Account [] .class'作为类型即可! – StaxMan
这确实有用。但我希望他会用这种方法来创建集合,而不是...恕我直言,总是更好地使用数组集合 –
数组和集合有它们自己的好处,我没有看到集合本质上更好,尤其是对于简单数据访问对象。 – StaxMan