gpt4 book ai didi

java - 整数无法转换为 JsonNode

转载 作者:行者123 更新时间:2023-12-02 06:01:40 29 4
gpt4 key购买 nike

我遇到了转换错误,但不知道如何解决。

 //get my json file as Map
Map<String, JsonNode> cm = null;
try {
cm = mapper.readValue(new File(path), Map.class);
} catch (JsonParseException e) {...}
//add some key, value pairs to my map

JsonNodeFactory factory = JsonNodeFactory.instance;
ObjectNode node = factory.objectNode();
//add to a jsonNode
node.putAll(cm);

所以我得到一个异常,因为其中一个键值对如下所示:{“id”:7}似乎没有办法将 Integer(7) 转换回 json,即使它以前是一个。

有什么想法吗?

异常(exception):

   Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be    cast to com.fasterxml.jackson.databind.JsonNode

最佳答案

您没有在映射中指定键和值的类型:

mapper.readValue(new File(path), Map.class);

结果是 Jackson 将尝试映射到它所知道的最佳类型;对于成员名称,很简单,它是一个String;对于值,它读取一个 JSON 数字,这个 JSON 数字没有小数点,它适合 int --> Integer 它是。

如果您希望显式序列化为给定的值类型,则必须执行以下操作:

mapper.readValue(new File(path), new TypeReference<Map<String, JsonNode>>() {});

关于java - 整数无法转换为 JsonNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22615723/

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