繁体   English   中英

Spring Boot:JSON反序列化不适用于getter / setter

[英]Spring Boot: JSON Deserialization not working for getters/setters

编辑

我创建了一个简单的ObjectMapper,并告诉它将json映射到该对象。 它引发了杰克逊反序列化的错误

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段

该应用程序显然正在吞咽,然后继续进行。 我知道必须修正为什么我的字段名都被赋予小写的首字母。

结束编辑

我正在使用Spring Boot,并且正在从远程应用程序以JSON格式通过网络发送对象。 我检查了“数据包”,发现所有对象的数据应为NULL。 这些字段都是私有的,但是可以通过getter和setter访问。

我尝试创建一个虚拟DTO对象并将其发送。 在那里,我看到当所有访问器都标记为私有时,反序列化工作正常,并且字段设置正确。

如何指示Spring Boot中的Jackson来查找字段的相应Getter并使用它来设置属性?

任何帮助是极大的赞赏。

下面是我要发送的对象以及虚拟DTO对象的图片。 在此处输入图片说明

在此处输入图片说明

这是我的Rest Controller以及正在调用的方法的顶部。

在此处输入图片说明

最后,这是麻烦的类的一个片段,该片段未进行序列化,属于@Entity。

在此处输入图片说明

它失败的原因有两个。 首先,我在发送者端具有未映射到Java端反序列化目标对象的属性。 其次,当NewtonSofts JSON转换器转换内容时,它将进行以下转换“字符串名称=>字符串名称”。 这导致另一个错误,其中Jackson转换器在JSON字符串中找不到任何目标值。

解决方案是使用以下值修改我的application.properties文件:

spring.jackson.deserialization.fail-on-unknown-properties = false spring.jackson.mapper.accept_case_insensitive_properties = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM