java - com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException : Unrecognized field

标签 java json jackson

我有一个反序列化问题:

这是我的课:

public class Response {

    private Object ResObj;
    private int ResInt;

    public Object getResObj() {
        return ResObj;
    }

    public int getResInt() {
        return ResInt;
    } 
} 

我要反序列化的 JSON 是:

{"ResObj":{"ClientNum":"12345","ServerNum":"78945","IdNum":"020252"},"ResInt":0}

我得到这个异常:

Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "ResObj" , not marked as ignorable (0 known properties: ])
 at [Source: java.io.StringReader@1f758500; line: 1, column: 20] (through reference chain: ["ResObj"])

我不想添加:

@JsonIgnoreProperties(ignoreUnknown = true)

因为我想获取 ResObj...

如果我添加注释,它会通过但它会将其设置为 null .. 这是我不想要的。

最佳答案

如果你不想在你的 bean 中有一个 setter 并且只使用字段和 getter,你可以使用 ObjectMapper 的可见性检查器来允许字段可见性。
类似以下内容:

ObjectMapper mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
mapper.setVisibility(VisibilityChecker.Std.defaultInstance().withFieldVisibility(JsonAutoDetect.Visibility.ANY));

关于java - com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException : Unrecognized field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23469784/

相关文章:

java - 使用 Jackson JSON 查找字段类型

java - 传递未知类扩展父类,然后调用父类的函数(Java)

java - 安全地将字符串传递给 javascript

python - 如何在python中合并多个json

ios - 如何在 ios 6.1 xcode 4.6 中获取 json 数据

java - 使用 Jackson 的 TypeResolverBuilder 反序列化原始长字段

java - 在 Eclipse 中触发 gui 更新(表未按应有的方式扩展)

java - java中框布局行中的面板居中

javascript - 如果源 json 更新(添加或删除项目),则动态更新 D3 Sunburst

dictionary - jackson:将包含对象类的 JSON 转换为 Map