[英]How do I parse an array of array JSON in Jackson JSON parser
我有一個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;
}
}
我的Monitor 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.Monitor的序列,它們位於START_ARRAY令牌之外,位於[來源:java.io.PushbackInputStream@2a2c13a8; 行:1,列:14](通過參考鏈:hello.MonitorsList [“ monitors]]-> java.util.ArrayList [0]); 嵌套的異常是com.fasterxml.jackson.databind.JsonMappingException:無法反序列化hello的實例。監視器不在START_ARRAY令牌中,位於[來源:java.io.PushbackInputStream@2a2c13a8; 行:1,列:14](通過參考鏈:hello.MonitorsList [“ monitors”]-> java.util.ArrayList [0])
我似乎無法弄清楚我在做什么錯。
任何幫助,將不勝感激!
感謝@SotiriosDelimanolis
和一點閱讀,我得以弄清楚自己在做什么錯。
因此,JacksonJSON Parser映射了一個
{
"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")
即可!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.