我有一个api,它释放出以下JSON:
{
"monitors": [
[
"/Common/http-cc-ping-any"
]
],
"is_alive":true
}我试图使用spring和Jackson JSON Parser将JSON映射到POJO
POJO定义为:
public class MonitorsList {
@JsonProperty("monitors")
private List<Monitors> monitors;
public void setMonitors(List<Monitors> monitors) {
this.monitors = monitors;
}
public List<Monitors> getMonitors() {
return this.monitors;
}
private boolean is_alive;
public void setIsAlive(boolean is_alive) {
this.is_alive= is_alive;
}
public boolean getIsAlive() {
return this.is_alive;
}
}我的监视器POJO是:
@JsonAutoDetect
public class Monitors {
private ArrayList<String> monitors;
public ArrayList<String> getMonitors() {
return this.monitors;
}
public void setMonitors(ArrayList<String> monitors) {
this.monitors = monitors;
}
}我使用一个RestTemplate检索JSON数据,但是我得到了以下错误:
错误:无法读取文档:无法在hello.Monitors令牌中反序列化START_ARRAY令牌的实例;嵌套的异常是java.util.ArrayList[0]">Source: java.io.PushbackInputStream@2a2c13a8; line: 1, column: 14不能从java.util.ArrayList[0]">Source: java.io.PushbackInputStream@2a2c13a8; line: 1, column: 14的START_ARRAY令牌中反序列化hello.Monitors的实例
我似乎不知道我做错了什么。
任何帮助都将不胜感激!
发布于 2015-12-23 05:27:38
多亏了@SotiriosDelimanolis和一些阅读,我才能弄清楚自己做错了什么。
因此,JacksonJSON解析器映射一个
{
"monitors": [
[
"/Common/http-cc-ping-any"
]
],
"is_alive":true
}作为以下POJO:
public class MonitorsList {
@JsonProperty("monitors")
private List<Monitors> monitors;
public void setMonitors(List<Monitors> monitors) {
this.monitors = monitors;
}
public List<Monitors> getMonitors() {
return this.monitors;
}
@JsonProperty("is_alive")
private boolean is_alive;
public void setIsAlive(boolean is_alive) {
this.is_alive= is_alive;
}
public boolean getIsAlive() {
return this.is_alive;
}
}和监测POJO为:
@JsonAutoDetect
public class Monitors extends ArrayList<String> {
}注意到 is_alive没有映射到setIsAlive,所以向字段is_alive或方法setIsAlive提供注释@JsonProperty("is_alive")都可以!
https://stackoverflow.com/questions/34427407
复制相似问题