使用 Jackson 解析 JSON 时遇到问题。我有一个POJO对象,由另一个对象包裹。
这是我的代码:
in main:
ObjectMapper mapper = new ObjectMapper();
List<ItemBean> mpl2 = mapper.readValue(col.toString(),new TypeReference<List<ItemBean>>() {});
my POJO class:
public class ItemBean implements Serializable {
private List<Item> items;
@JsonProperty("Item")
public List<Item> getItems() {
return items;
}
public void setItems(List<Item> items) {
this.items = items;
}
}
public class Item implements Serializable{
public String field1;
public Integer field2;
public static final class Field3 extends GenericJson {
private String subfield1;
private String subfield2;
}
}
这是抛出的异常:
org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "item" (Class bean.item), not marked as ignorable
at [Source: java.io.StringReader@101b6d56; line: 4, column: 16] (through reference chain: bean.ItemBean["items"]->bean.Item["item"])
JSON 看起来是这样的:
["{\n
\"items\":
[
\n {
\n \"item\": {
\n \"field1\": \"val1\",
\n \"field2\": \"val2\",
\n \"field3\": [
\n {
\n \"subfield1\": subval
\n \"subfield2\": subval
\n }
\n ]
\n }
\n },
\n \"item\": {
\n \"field1\": \"val1\",
\n \"field2\": \"val2\",
\n \"field3\": [
\n {
\n \"subfield1\": subval
\n \"subfield2\": subval
\n }
\n ]
\n }
\n },
\n \"item\": {
\n \"field1\": \"val1\",
\n \"field2\": \"val2\",
\n \"field3\": [
\n {
\n \"subfield1\": subval
\n \"subfield2\": subval
\n }
\n ]
\n }
\n },
etc...... may I haven't closed brackets correctly, but they are correct :)
}
]
"]
POJO 完全重复 JSON 对象的字段。