gpt4 book ai didi

java - Spring 启动: JSON Deserialization not working for getters/setters

转载 作者:行者123 更新时间:2023-12-01 08:45:54 25 4
gpt4 key购买 nike

编辑:

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

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

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

结束编辑

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

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

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

非常感谢任何帮助。

下面是我尝试发送的对象以及虚拟 DTO 对象的图片。 enter image description here

enter image description here

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

enter image description here

最后,这是来自未序列化的麻烦类的片段,它属于 @Entity 类型。

enter image description here

最佳答案

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

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

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

关于java - Spring 启动: JSON Deserialization not working for getters/setters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43038656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com