问题描述
要求在json中,将存在字符串和字符串的映射,但应允许具有相同值的多个键。
类似这样的东西
{
"src": "A","dest": "B","interStoreType": {
"C1": "C1","C2": "C2","C2": "C3","C3": "C3"
}
}
此值在一个db列的String中,因此,我使用objectmapper将其转换为Dto对象。 如果我使用map,则默认为[C1:C1,C2:C3,C3:C3],它将取最后一个值 因此,尝试使用Multimap(guava),MultiValuedMap(apache commons集合),它也具有与Map所提供的相同的价值。
还有其他方法,例如在值部分添加数组或用分号联接。 但是,我想知道对象映射器没有为同一键创建多个记录的原因。
解决方法
地图中不能有重复的键。 MultiValuedMap
是列表的映射,因此它也是映射,因此也不能有重复的键。
尝试这样表达您的JSON:
{
"src": "A","dest": "B","interStoreType": {
"C1": ["C1"],"C2": ["C2","C3"],"C3": ["C3"]
}
}