我正在将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"
}
]
}
]
}