Java-Map检索内部映射值

Java-Map检索内部映射值,java,linkedhashmap,Java,Linkedhashmap,我正在将JSON文件转换为Map对象,下面是输出 [ INV: [[ TestCaseID:MKP, TestData: [ [ Controltype:text, Label:Title, Inputvalues:solid state device

我正在将JSON文件转换为Map对象,下面是输出

[
    INV: [[ 
            TestCaseID:MKP, 
            TestData: [
                [
                    Controltype:text, 
                    Label:Title, 
                    Inputvalues:solid state device
                ],
                [
                    Controltype:search, 
                    Label:Creater, 
                    Inputvalues:Sabra-Anne Truesdale
                ]
            ]
    ]]
]
代码

从这里,如何检索内部映射[
TestData
]?
我正在搜索测试用例id,如果它在映射上匹配,那么我需要检索测试数据。

您应该能够使用get方法从映射中检索值,键为-

因此:

公共静态映射findTestCase(列表l,字符串testCaseID){
(地图一:l){
if(testCaseID.equals(i.get(“testCaseID”)){
返回i;
}
}
返回null;
}
List testCases=jsonMap.get(“INV”);
Map testCase=findTestCase(testCases,“MKP”);
if(testCase!=null){
获取(“TestData”);
}
这是假设您调用的解析代码将JSON数组解释为列表对象

想象一下JSON实际上是这样的:

{
“投资部”:[
{
“TestCaseID”:“MKP”,
“测试数据”:[
{
“控制类型”:“文本”,
“标签”:“标题”,
“输入值”:“固态设备”
},
{
“控制类型”:“搜索”,
“标签”:“创建者”,
“输入值”:“Sabra Anne Truesdale”
}
]
}
]
}

只是一个旁白:第一行中的
新LinkedHashMap()
完全没有必要,因为当您在第二行重新分配变量时,它会丢失。这不起作用,因为映射只有“INV”作为唯一的键。它的值似乎是一个地图列表,在这个列表中的某个地方是OP想要得到的映射。这个答案的质量仍然很差,因为它不符合OP
给出的逻辑。我正在搜索测试用例id,如果它在映射上匹配,那么我需要检索测试数据,并且总是返回第一个测试用例,不管它有什么id
Map jsonMap = new LinkedHashMap()
jsonMap = converJsonToMapObject(fileName)
println jsonMap