gpt4 book ai didi

java - Jackson:无法反序列化 START_ARRAY 中的对象实例

转载 作者:行者123 更新时间:2023-11-30 03:06:27 24 4
gpt4 key购买 nike

我在尝试解析之前使用 Jackson 生成的一些 JSON 时收到此错误。我像这样生成 JSON

String ret = "";
ret = mapper.writeValueAsString(message.getPayload());
message.setPayload(ret);

其中 message.getPayload() 是一个 HashMap,在本例中包含两个字符串和一个各种对象的 List。这会创建以下格式错误的 JSON

{
"user" : "john d example",
"items" : [ {
"val" : 99.5,
"id" : "phone",
"qty" : 1
}, {
"val" : 15.5,
"id" : "wine",
"qty" : 4
} ],
"address" : "123 example street"
}

这样检查时会抛出异常

Map<String, Object> ret = new HashMap<String, Object>();
String s = (String)message.getPayload();
ret = mapper.readValue(s, new TypeReference<Map<String, String>>(){});

我应该如何正确地将这个Map写入JSON?

最佳答案

TypeReference<Map<String, String>>应该是TypeReference<Map<String, Object>> 。 Jackson 尝试将值解析为字符串而不是列表,因为这是它根据您传入的 TypeReference 所期望的。

关于java - Jackson:无法反序列化 START_ARRAY 中的对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34639521/

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