jackson禁用fail_on_empty_beans

使用fail_on_empty beans 2.1,我该如何禁用错误消息似乎要我禁用的fail_on_empty beans

我假设这只是世界上最简单的事情,但是地狱晚了,我一直无法find一个简单的教程,或从api任何特别明显的。 SerializationFactory ? 为什么他们会这么直截了当,然后让错误信息看起来很直截了当?

尽pipe我喜欢这个错误信息,但我的意思是,它比NPE好。

我假设有一种方法可以使用注释来做到这一点 – 但是我并不热衷于使用它们来进行简单的工作。

我相信你可以在每个class或全球范围内做到这一点。

对于每个类,尝试@JsonSerialize上面的类声明。

对于一个映射器,这里有一个例子:

 ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); // do various things, perhaps: String someJsonString = mapper.writeValueAsString(someClassInstance); SomeClass someClassInstance = mapper.readValue(someJsonString, SomeClass.class) 

下面的StackOverflow链接也有一个Spring项目的例子。

对于泽西岛的REST,我不记得我的头顶,但我相信它是相似的。


我挖了几个链接:(由Codehausclosures编辑的第一个链接)。

如果您的类不包含任何公共方法/属性,也可以得到相同的问题。 我通常有专门的DTO用于API请求和响应,声明为public,但是在一种情况下忘记了也公开这些方法 – 这首先导致了“空”bean。

您也可以使用@JsonIgnoreProperties(ignoreUnknown=true)注释该类来忽略类中未定义的字段

如果你使用org.codehaus.jackson.map.ObjectMapper,那么请。 使用以下几行

 mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false); 

在我的情况下,我错过了编写@JsonProperty注释在一个导致这个错误的领域。

在这里添加一个解决scheme来解决不同的问题,但是会出现一个相同的错误…在构buildjson(as api response或其他)来转义string成员中的文字双引号时要小心。 你可能正在消耗自己畸形的json。