错误时,试图马歇尔邮差收集JSON到java请求对象,为什么?



我正在尝试将邮递员收集作为JSON输入并将其马歇尔到请求Java对象。下面是我的输入和相应的java对象以及错误。

{"item": [
{
"name": "name1",
"item": [
{
"name": "name2",
"event": [
{
"listen": "test",
"script": {
"exec": [
"irrelevant data",
"irrelevant data"
],
"type": "text/javascript",
"id": "1234"
}
}
]
}

Java对象:

public class Request {
private List<Item> item;
}
public class Item {
private String name;
private List<Event> event;
private List<Item> item;
}

错误:

JSON解码错误:无法反序列化Item out的实例START_ARRAY令牌嵌套异常是com.fasterxml.jackson.databind.exc.MismatchedInputException

如果我从item类中删除List项,则请求将通过,但我只获得第一个项目name1,这就是我所获得的。我尝试使项目类有一个数组项目[]项目,只是一个单一的项目'项目项目',以及,但都产生相同的错误。

因为类Item不能有字段List<Item>,我猜它会递归。你可以这样做。

public class Request {
private List<Item> item;
}
public class Item {
private String name;
@JsonProperty("item")
private List<NestedItem> nestedItem;
}
public class NestedItem {
private String name;
private List<Event> event;
}

最新更新