首页 > Java >  JSON 字符串转换为 Java 对象:无法识别的字段,未标记为可忽略

 JSON 字符串转换为 Java 对象:无法识别的字段,未标记为可忽略

上一篇 下一篇

我需要将某个 JSON 字符串转换为 Java 对象。我正在使用杰克逊进行JSON处理。我无法控制输入 JSON(我从 Web 服务读取)。这是我的输入 JSON:

{"wrapper":[{"id":"13","name":"Fred"}]}

下面是一个简化的用例:

private void tryReading() {
    String jsonStr = "{"wrapper":[{"id":"13","name":"Fred"}]}";
    ObjectMapper mapper = new ObjectMapper();  
    Wrapper wrapper = null;
    try {
        wrapper = mapper.readValue(jsonStr , Wrapper.class);
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("wrapper = " + wrapper);
}

我的实体类是:

public Class Student { 
    private String name;
    private String id;
    //getters & setters for name & id here
}

我的包装类基本上是一个容器对象,用于获取我的学生列表:

public Class Wrapper {
    private List<Student> students;
    //getters & setters here
}

我不断收到此错误,并且“包装器”返回.我不确定缺少什么。有人可以帮忙吗?null

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: 
    Unrecognized field "wrapper" (Class Wrapper), not marked as ignorable
 at [Source: java.io.StringReader@1198891; line: 1, column: 13] 
    (through reference chain: Wrapper["wrapper"])
 at org.codehaus.jackson.map.exc.UnrecognizedPropertyException
    .from(UnrecognizedPropertyException.java:53)

分割线

网友回答:

您可以使用

ObjectMapper objectMapper = getObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

它将忽略所有未声明的属性。

分割线

网友回答:

您可以使用杰克逊的类级注释:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties

@JsonIgnoreProperties
class { ... }

它将忽略您在 POJO 中未定义的每个属性。当您只是在 JSON 中查找几个属性并且不想编写整个映射时非常有用。更多信息请访问杰克逊的网站。如果你想忽略任何未声明的属性,你应该写:

@JsonIgnoreProperties(ignoreUnknown = true)

分割线

网友回答:

第一个答案几乎是正确的,但需要的是更改 getter 方法,而不是字段 — 字段是私有的(而不是自动检测的);此外,如果两者都可见,则 getter 优先于字段。(也有一些方法可以使私有字段可见,但是如果您想拥有getter,那就没有多大意义了)

所以getter应该被命名,或者用:getWrapper()

@JsonProperty("wrapper")

如果您更喜欢 getter 方法名称,请按原样命名。

模板简介:该模板名称为【 JSON 字符串转换为 Java 对象:无法识别的字段,未标记为可忽略】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 216次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 03-30
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信模板 html5 微信文章 微信素材 微信公众平台 企业网站 响应式 自适应 微信图片 单页式简历模板
您可能会喜欢的其他模板