解析具有意外属性的 json 时出错 - 如何放宽解析规则?
Error parsing json with unexpected properties - how to relax parsing rules?
我在 DropWizard 中有一个 API hosted/written。它消耗 JSON 并且效果很好
@POST
public void somePost(SomeObject object)
其中 SomeObject
是一个 pojo。 Jackson 将 JSON 反序列化到对象中没有问题。
为了将来证明使用这个 API 的 "calling code",我开始添加一些 SomeObject
中还没有的属性。但是(大概是 Jackson)现在抛出 "error parsing json" 错误。
我想稍微放宽规则,以便 Jackson 对传入的 JSON 中无法识别的字段更加宽容(默认情况下 GSON 会这样做)。我尝试了 @JsonIgnoreProperties
class 级别注释,但没有成功。
提前致谢。
你说你试过@JsonIgnoreProperties。你试过这样吗?
@JsonIgnoreProperties(ignoreUnknown = true)
经过以上测试,它应该可以工作。
另一种选择是通过禁用 DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
全局允许任何和所有未知属性。忽略所有未映射的内容可能是危险的,但对于 "Open Content" 样式用法,它非常有效。
我在 DropWizard 中有一个 API hosted/written。它消耗 JSON 并且效果很好
@POST
public void somePost(SomeObject object)
其中 SomeObject
是一个 pojo。 Jackson 将 JSON 反序列化到对象中没有问题。
为了将来证明使用这个 API 的 "calling code",我开始添加一些 SomeObject
中还没有的属性。但是(大概是 Jackson)现在抛出 "error parsing json" 错误。
我想稍微放宽规则,以便 Jackson 对传入的 JSON 中无法识别的字段更加宽容(默认情况下 GSON 会这样做)。我尝试了 @JsonIgnoreProperties
class 级别注释,但没有成功。
提前致谢。
你说你试过@JsonIgnoreProperties。你试过这样吗?
@JsonIgnoreProperties(ignoreUnknown = true)
经过以上测试,它应该可以工作。
另一种选择是通过禁用 DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
全局允许任何和所有未知属性。忽略所有未映射的内容可能是危险的,但对于 "Open Content" 样式用法,它非常有效。