У меня есть проблема с использованием библиотеки Jackson
, чтобы десериализовать строку JSON и отобразить ее в POJO
.Исключение Jackson JSON при десериализации
У меня есть этот JSON:
[{
"requestor": "Nick Jagger",
"smtp": "[email protected]",
"smtp_from": "[email protected]",
"cnname": "testcn",
"date": "2014-11-11",
"system_ciid": "3926598",
"request_base64": "its some base64 hash"
}, {
"requestor": "Freddie Mercury",
"smtp": "[email protected]",
"smtp_from": "[email protected]",
"cnname": "testowe cn",
"date": "2014-11-26",
"system_ciid": "JK19",
"request_base64": "some base64 hash"
}]
Я создал класс POJO для представления одного элемента в этом массиве:
public class Questionareimplements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@JsonProperty("cnname")
private String caName;
@JsonProperty("smtp")
private String smtp;
@JsonProperty("requestor")
private String issuer;
@JsonProperty("system_ciid")
private String system_ciid;
@JsonProperty("date")
private String date;
@JsonProperty("request_base64")
private String base64String;
@JsonProperty("smtp_from")
private String smtp2;
// getters and setters
}
А класс, который представляет список этих объектов:
public class QuestionareList {
private List<Questionare> questionares;
public List<Questionare> getQuestionares() {
return questionares;
}
public void setQuestionares(List<Questionare> questionares) {
this.questionares = questionares;
}
}
А теперь, как я сопоставляю эти
QuestionareList listQ = new QuestionareList();
ObjectMapper m = new ObjectMapper();
listQ = m.readValue(jsonString,QuestionareList.class);
Все, что я получаю:
Can not deserialize instance of com.test.service.QuestionareList out of START_ARRAY token
at [Source: [email protected]; line: 1, column: 1]
Любая идея, что я делаю неправильно?
Хорошее объяснение! –