杰森将JSON转换为JAVA
问题描述:
我试图解析从google自定义搜索中检索到的json数据。杰森将JSON转换为JAVA
这里是JSON例子:
{
"items": [
{
"link": "address1"
},
{
"link": "address2"
}
]
}
这是POJO:
public class Result
{
item[] items;
class item
{
String link;
}
}
但我得到一个错误:
无法识别领域的 “项目”(类结果) ,未标记为可忽略
什么问题与我的POJO?
答
使类结构像下面
class item {
String link;
}
@JsonIgnoreProperties(ignoreUnknown=true)
class Result {
item[] items;
}
的@JsonIgnoreProperties(ignoreUnknown = TRUE)将有助于充分,如果在JSON字符串的任何属性,但是,是不是在你的类,然后解析器将不通过任何异常都会忽略它。
编辑: 与实例
完整代码class Item {
String link;
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
}
@JsonIgnoreProperties(ignoreUnknown = true)
class Result {
List<Item> items;
public List<Item> getItems() {
return items;
}
public void setItems(List<Item> items) {
this.items = items;
}
}
public class JsonCommonTest {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
String data = "{\"items\": [{\"link\": \"address1\"},{\"link\": \"address2 \"}]}";
Result result = mapper.readValue(data, Result.class);
System.out.println(result.items.size());
}
}
答
如果您在杰克逊使用内部类的内部类必须是静态或不使用内部类。
可能是类项目是一个内部类...尝试使它成为公共类。 – Thihara 2013-04-11 05:46:01