gpt4 book ai didi

java - Jackson:反序列化任何 json

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

这应该不会太难......但我似乎很盲目,自己找不到答案。

使用 Jackson,我想反序列化 Java 映射中的任何 ** JSON。Array 部分造成了麻烦。

任何 json 可能如下所示:{ "foo": "bar"}{ "test": [ { "a": 123, "b": "erny"}, { "a": ...等等

这些应该反序列化为(伪代码):

Map( foo => "bar" )
Map( test => Array(
Map( a => 123, b=>erny ),
Map( a => ... and so on
) )

我不太关心数组和映射的类型,只要它们本身就是这样,也不关心值的类型。 (但是如果整数也能这样表示那就太好了)。

如果我尝试om.readValue( json, Map.class ),我得到Cannot deserialize instance of java.lang.String out of START_ARRAY 如果 json 包含数组,则会出错。

我非常成功地使用 Jackson 来处理所有复杂的 JSON 内容,但是如何做简单的事情呢?

注意:Jackson 使用上面的语法完全按照我希望的方式执行。问题是我的 json 中的一个错误。所以这个问题没有意义。

**) any 并不完全正确。我使用的每个 JSON 都是最低级别的映射。

最佳答案

Jackson 可以将 JSON 对象反序列化为 java.util.Map,将 JSON 数组反序列化为 java.util.List

从您的错误消息来看,您似乎正在尝试将 JSON 数组反序列化为 java.util.Map,这是不可能的。

关于java - Jackson:反序列化任何 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60507246/

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