当 Json 文件具有相同的键值时如何使用 HashMap

She*_*man 3 java list hashmap

我的json文件看起来像这样[实际上它有更多,例如我只是放了2个块]

[{
        "answerValue": "2021-02-01",
        "parentId": "Policy",
        "instance": 1,
        "fieldId": "PolicyEffectiveDate"
    },
    {
        "answerValue": "2012",
        "parentId": "Insured",
        "instance": 1,
        "fieldId": "DateBusinessStarted"
    }
]
Run Code Online (Sandbox Code Playgroud)

我想将它们存储在 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

预期:我想让它打印

[{parentId:=Policy, fieldId:=PolicyEffectiveDate, answerValue:=2021-02-01, instance:=1}, {parentId:=Insured, fieldId:=Business_Name, answerValue:=Assurestart LLC, instance:=1}]
Run Code Online (Sandbox Code Playgroud)

实际:正在打印,最后一个值两次。

[{parentId:=Insured, fieldId:=Business_Name, answerValue:=Assurestart LLC, instance:=1}, {parentId:=Insured, fieldId:=Business_Name, answerValue:=Assurestart LLC, instance:=1}]
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它打印 2 个不同的值?提前感谢您的时间和想法。

Axe*_*xel 5

您应该为第二个条目创建一个新映射,而不是覆盖第一个条目的值。添加

dataMap = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

将第一个条目添加到列表后。