问题描述
[
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
]?
我正在搜索Test Case 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"
}
]
}
]
}