繁体   English   中英

通过Jackson将JSON转换为JAVA

[英]Convert JSON to JAVA by jackson

我正在尝试解析从Google自定义搜索中检索到的json数据。

这是json示例:

{
 "items": [
  {
   "link": "address1"
  },
  {
   "link": "address2"
  }
 ]
}

这是POJO:

public class Result 
{
    item[] items;
    class item
    {
        String link;
    }
}

但是我得到一个错误:

无法识别的字段“ items”(类结果),未标记为可忽略

我的POJO有什么问题?

使类结构如下

class item {
    String link;
}
@JsonIgnoreProperties(ignoreUnknown=true)
class Result {
    item[] items;
}

如果JSON字符串中有任何属性,但是@JsonIgnoreProperties(ignoreUnknown = true)会完全帮助您,但类中不存在该属性,那么解析器不会遇到任何异常,它只会忽略它。

编辑:带有示例的完整代码

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());
    }
}

如果在杰克逊中使用内部类,则内部类必须是静态的,或者不要使用内部类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM