gpt4 book ai didi

java - 使用 Jackson 将具有 HashMap 的对象序列化为 JSON 时出现映射异常

转载 作者:行者123 更新时间:2023-12-01 09:00:30 26 4
gpt4 key购买 nike

我有一个类,我正在尝试使用 Jackson 序列化为 JSON:

class A {
String someString;
Map<String, Long> someMap;
}

我使用以下代码进行序列化:

mapper.writeValueAsString(a);

其中 a 是类 A 的实例。

我收到此异常:

com.fasterxml.jackson.databind.JsonMappingException: java.lang.Double cannot be cast to java.lang.Long (through reference chain ... java.util.HashMap)

我尝试启用不同的默认键入,但这没有帮助。

最佳答案

发生这种情况是因为您的 map 包含 Double 而不是 Long。通常这是忽略警告或使用反射的结果。重现起来相当容易:

A a = new A();
a.someMap = new HashMap<>();
((Map)a.someMap).put("bar", 1.0);
new ObjectMapper().writeValueAsString(a);

com.fasterxml.jackson.databind.JsonMappingException: java.lang.Double cannot be cast to java.lang.Long (through reference chain: A["someMap"]->java.util.HashMap["bar"])

关于java - 使用 Jackson 将具有 HashMap 的对象序列化为 JSON 时出现映射异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41713854/

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