编辑:
我创建了一个简单的ObjectMapper并告诉它将json映射到对象。它抛出了杰克逊反序列化的错误
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段
该应用程序显然正在吞咽然后继续。我知道必须解决为什么我的字段名都被赋予小写的第一个字母。
结束编辑
我正在使用Spring Boot,我正在通过网络以远程应用程序的JSON格式发送一个对象。我检查“数据包”,我看到所有对象的数据都应该是NULL。这些字段都是私有的,但可以通过getter和setter访问。
我尝试创建一个虚拟DTO对象并发送它。在那里,我看到反序列化正常工作,并且当所有访问者都被标记为私有时,字段被正确设置。
如何在Spring Boot中指示Jackson找到相应的字段Getter并使用它来设置属性?
非常感谢任何帮助。
这是我的Rest Controller的顶部和被调用的方法。
最后,这是一个来自麻烦的类的片段,它没有被序列化,它是@Entity的变种。
答案 0 :(得分:1)
失败的原因是双重的。首先,我在发送方有一些属性,它们没有映射到Java端的反序列化目标对象。其次,当NewtonSofts JSON转换器转换内容时,它会进行以下转换" String Name =>字符串名称"。这导致另一个错误,即Jackson转换器无法在JSON字符串中找到任何目标值。
解决方案是使用以下值修改我的application.properties文件:
spring.jackson.deserialization.fail-上未知的属性=假 spring.jackson.mapper.accept_case_insensitive_properties =真