使用杰克逊映射关联数组

时间:2018-07-24 10:43:37

标签: jackson jackson-databind

我有时会遇到这个问题,并且总是无法以一种很好的方式解决它。尽管进行了所有搜索,但我只能使用自己的反序列化器来映射此映射,该解序列器通过自定义解序列器中的名称≈字符串文字来选择JSON中的属性,而不是对象上的某些注释。可以说,对于较小的对象(如下面的示例中的示例)可以接受,但是对于较大的对象,这是一个痛苦。我可以通过在自定义反序列化器中调用ObjectMapper来解决此问题,但这感觉不对。什么是正确的wa?

我有这个带有关联数组的JSON:

{
  "property1": "value1",
  "associative array": {
    "key1": {
      "property3": "value",
      "property4": "value"
    },
    "key2": {
      "property3": "value",
      "property4": "value"
    }
  }
}

,并希望将其映射到2个结构:

class ListStructure {
    String property1;
    List<AssociativeArrayObject> list;

    static class AssociativeArrayObject {
        String key;
        String property3;
        String property4;
    }
}

class MapStructure {
    String property1;
    Map<String, AssociatedProperties> map;

    static class AssociatedProperties {
        String property3;
        String property4;        
    }
}

有人可以建议如何映射吗?不允许对JSON进行任何更改(例如为给定对象指定数据类型)。

0 个答案:

没有答案