【问题标题】:While using Jackson parser for data name like isDeleted, Parsing issue [duplicate]使用 Jackson 解析器获取 isDeleted 等数据名称时,解析问题 [重复]
【发布时间】:2025-12-24 05:35:06
【问题描述】:

mapper调用如下:

String sampleJson; //sample string 
PojoClass data = mapper.readValue(sampleJson, PojoClass.class);

isDeleted 字段抛出以下错误:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "isDeleted"

at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:60)
    at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:823)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1153)
...

【问题讨论】:

  • 请发布您的代码。
  • 它的简单 pojo 类在解析 String sampleJson 时抛出错误;//示例字符串 PojoClass data = mapper.readValue(sampleJson, PojoClass.class);
  • 您可以在问题中以格式化文本(即不在评论中)的形式发布您的代码吗?你能包括你的pojo吗? JSON 的示例也会有所帮助。更一般地说,您应该尝试提供minimal reproducible example

标签: java spring parsing jackson


【解决方案1】:

您应该将 @JsonIgnoreProperties(ignoreUnknown = true) 注释添加到您的 PojoClass.java b/c 您传入的 json 具有您的 PojoClass 中未定义的属性(或删除您的 json 中未定义的任何属性在 pojo 中定义)。

@JsonIgnoreProperties(ignoreUnknown = true)
public class PojoClass implements Serializable
{
  private String myString ...
}

【讨论】: