Java-Map检索内部映射值



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

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

代码

Map jsonMap = new LinkedHashMap()
jsonMap = converJsonToMapObject(fileName)
println jsonMap

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

您应该能够使用带有键-的get方法从映射中检索值https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#get-java.lang.Object-

因此:

public static Map findTestCase(List<Map> l, String testCaseID) {
for (Map i : l) {
if (testCaseID.equals(i.get("TestCaseID"))) {
return i;
}
}
return null;
}
List testCases = jsonMap.get("INV");
Map testCase = findTestCase(testCases, "MKP");
if (testCase != null) {
testCase.get("TestData");
}

这是假设您调用的解析代码将JSON数组解释为List对象。

想象JSON实际上看起来是这样的:

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

最新更新