java - 当Json文件具有相同的键值时如何使用HashMap
问题描述
我的 json 文件看起来像这样 [实际上它有更多,例如,我只是放了 2 个块]
[{
"answerValue": "2021-02-01",
"parentId": "Policy",
"instance": 1,
"fieldId": "PolicyEffectiveDate"
},
{
"answerValue": "2012",
"parentId": "Insured",
"instance": 1,
"fieldId": "DateBusinessStarted"
}
]
我想将它们存储在 HashMap 中并打印它们。
public void MapCheck() {
Map<String, Object> dataMap = new HashMap<>();
List<Map> lstMap = new ArrayList<>();
dataMap.put("answerValue:", "2021-02-01");
dataMap.put("parentId:", "Policy");
dataMap.put("instance:", 1);
dataMap.put("fieldId:", "PolicyEffectiveDate");
lstMap.add(dataMap);
dataMap.put("answerValue:", "Assurestart LLC");
dataMap.put("parentId:", "Insured");
dataMap.put("instance:", 1);
dataMap.put("fieldId:", "Business_Name");
lstMap.add(dataMap);
System.out.println(lstMap);
}
public static void main(String[] args) {
Test t = new Test();
t.MapCheck();
}
}
预期:我希望它打印
[{parentId:=Policy, fieldId:=PolicyEffectiveDate, answerValue:=2021-02-01, instance:=1}, {parentId:=Insured, fieldId:=Business_Name, answerValue:=Assurestart LLC, instance:=1}]
实际:正在打印,最后一个值两次。
[{parentId:=Insured, fieldId:=Business_Name, answerValue:=Assurestart LLC, instance:=1}, {parentId:=Insured, fieldId:=Business_Name, answerValue:=Assurestart LLC, instance:=1}]
如何让它打印 2 个不同的值?提前感谢您的时间和想法。
解决方案
您应该为第二个条目创建一个新映射,而不是覆盖第一个条目的值。添加
dataMap = new HashMap<>();
将第一个条目添加到列表后。
推荐阅读
- python - Pythonunit test:测试执行后的输出应该显示在日志中
- javascript - react: onClick - 只获取被点击的元素,而不是子元素
- google-bigquery - 如何在 BigQuery 上提取字符串类型的 postgres hstore
- ionic-framework - Ionic Native Camera 未在 Android 设备上调用 getPicture() 回调
- android - 如何在 android studio 中集成 google-play-services
- amazon-web-services - AWS CLI S3 CP 性能非常缓慢
- forms - Angular 材质:errorStateMatcher 与 ngFor 的使用
- arrays - 仅将第一个元素执行到数组中的问题
- python - 尝试打包 Python 项目时,在 pip 安装后找不到 Sqlite3 数据库
- ios - UIImage中的图像在绘制时调整大小