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编辑的第一个链接)。
- https://web.archive.org/web/20150513164332/https://jira.codehaus.org/browse/JACKSON-201
- jackson序列化configuration
如果您的类不包含任何公共方法/属性,也可以得到相同的问题。 我通常有专门的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。