java - Jackson 类的反序列化

标签 java jackson

是否可以使用 Jackson 反序列化下面的示例?

public class A extends HashMap<String,String> {
   //No other methods here for now
}

...

JSON 看起来像这样:

{"something": 
   {
   "entry":
   [
     {"key":"one", "value":"avalue"}, 
     {"key":"two", "value":"bvalue"}
   ]
  }
}

...

此时我收到错误消息:无法识别的属性异常。

任何帮助将不胜感激。

最佳答案

首先,你的 json 是错误的,但我想我明白你在尝试什么。

不,这是不可能的。 HashMap<String,String>意味着您的对象仅包含顶级字符串属性,例如:

{
    "something": "value",
    "somethingelse": "value2",
    "someAdditionalThing": "value3"
}

要反序列化,您可能需要有一个更强类型的对象。 jackson 在试图转身时摔倒了:

{
    "entry":
        [
            {"key":"one", "value":"avalue"}, 
            {"key":"two", "value":"bvalue"}
        ]
}

转换为字符串。

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

相关文章:

java - 未解析的类 : Validates resource reference inside Android XML files

java - 这段代码有什么问题(简单链表)

java - (反)序列化枚举集

java - jackson 日期时间模式未正确显示时区

java - 在 Android 上使用 Jackson 库解析大型 JSON 时出现内存不足错误

java - 防止Java中具有多个字段的重复数据集

java - 智能 JVM 和 JIT 微优化

java - 如何在 Spring Boot 应用程序中使用 JPQL 配置 JPA - "can' t 解析符号..”

java - Jackson , java.time , ISO 8601 , 无毫秒序列化

jackson 数据绑定(bind) : Cannot construct instance of `java.time.OffsetDateTime`