反序列化一个可以包含多种类型的数组

问题描述

我有一些 JSON 可以保存两个映射数组的数组,或者只是映射(我知道这看起来很愚蠢)。我无法确定 ArrayOrMap 类应该是什么样子才能反序列化这个结构。

{
  "example": [
      [
        {
          "key1": "value1"
        },{
          "key2": "value2"
        }
      ],{
        "key3": "value3"
      }
    ]
}

我正在尝试使用 ObjectMapper 和 Jackson 的 @JsonCreator 注释反序列化:

    @Getter
    static class StackOverflowExample {
        private final ArrayOrMap[] example;

        @JsonCreator
        StackOverflowExample (
                @JsonProperty("example") ArrayOrMap[] example,) {
            this.example = example;
        }
    }

    @Getter
    static class ArrayOrMap {
        ???
    }

    ...
    // code that attempts to deserialise
    final StackOverflowExample result = objectMapper.readValue(
            data,StackOverflowExample.class
    );

我正在尝试将 JSON 反序列化为一个对象数组,每个对象可以是一个映射数组,也可以只是一个映射,但我不知道 ArrayOrMap 的类应该是什么样的。似乎对象反序列化总是需要某种键,但这里我只是反序列化一个对象数组,所以我没有要查看的键。

我知道这个 JSON 的结构一开始很糟糕,但现在改变它需要付出很大的努力。

感谢任何帮助,谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)