首页 > 解决方案 > 用于字符串映射的 Json To Dto 类,字符串但允许重复使用相同的键

问题描述

要求在 json 中,会有字符串和字符串的映射,但应该允许多个具有相同值的键。

像这样的东西

{
  "src": "A",
  "dest": "B",
  "interStoreType": {
    "C1": "C1",
    "C2": "C2",
    "C2": "C3",
    "C3": "C3"
  }
}

该值在一个 db 列中的字符串中,因此,我使用 objectmapper 将其转换为 Dto 对象。默认情况下,如果我使用地图,它将是[C1:C1,C2:C3,C3:C3],它将采用最后一个值所以,尝试使用Multimap(guava),MultiValuedMap(apache commons collection),它也给出了与 Map 给出的值相同。

还有其他方法,例如在值部分添加数组或使用分隔符连接。但是,我想知道对象映射器没有为同一个键创建多个记录的原因。

标签: javaobjectmapper

解决方案


地图中不能有重复的键。AMultiValuedMap是一个列表的映射,所以它也是一个映射,所以它也不能有重复的键。

尝试像这样表达您的 JSON:

{
  "src": "A",
  "dest": "B",
  "interStoreType": {
    "C1": ["C1"],
    "C2": ["C2","C3"],
    "C3": ["C3"]
  }
}

推荐阅读