从根为数组的jsonpath获取元素值
我有一个JSON响应,它的根是一个由1个或多个对象组成的数组。我想提取每个对象中一个元素的值 以下是JSON示例:从根为数组的jsonpath获取元素值,json,rest-assured,rest-assured-jsonpath,Json,Rest Assured,Rest Assured Jsonpath,我有一个JSON响应,它的根是一个由1个或多个对象组成的数组。我想提取每个对象中一个元素的值 以下是JSON示例: [ { "od_pair":"7015400:8727100", "buckets":[ { "bucket":"C00", "original":2, "available":2 }, {
[
{
"od_pair":"7015400:8727100",
"buckets":[
{
"bucket":"C00",
"original":2,
"available":2
},
{
"bucket":"A01",
"original":76,
"available":0
},
{
"bucket":"B01",
"original":672,
"available":480
}
]
},
{
"od_pair":"7015400:8814001",
"buckets":[
{
"bucket":"C00",
"original":2,
"available":2
},
{
"bucket":"A01",
"original":40,
"available":40
},
{
"bucket":"B01",
"original":672,
"available":672
},
{
"bucket":"B03",
"original":632,
"available":632
},
{
"bucket":"B05",
"original":558,
"available":558
}
]
}
]
我想访问每个对象中od_对的值
我尝试将根数组引用为$
,但没有帮助
这是我编写的代码片段:
List<Object> LegList = jsonPath.getList("$");
int NoofLegs = LegList.size();
System.out.println("No of legs :" +NoofLegs);
for (int j=0; j<=NoofLegs;j++) {
String OD_Pair = jsonPath.param("j", j).getString("[j].od_pair");
System.out.println("OD Pair: " + OD_Pair);
List<Object> BucketsList = jsonPath.param("j", j).getList("[j].buckets");
int NoOfBuckets = BucketsList.size();
System.out.println("no of Buckets: " + NoOfBuckets);
}
有人能帮我一下吗?您从
$
开始是对的。然而,您从特定的JSON中得到的是列表
的HashMap
,其中每个JSON对象都表示为一个HashMap
。知道您可以获得如下所示的HashMap
s列表:
List<HashMap<String, Object>> jsonObjectsInArray = path.getList("$");
for (HashMap<String, Object> jsonObject : jsonObjectsInArray) {
System.out.println(jsonObject.get("od_pair"));
}
输出为:
7015400:8727100
7015400:8814001
希望有帮助 谢谢你。但是,我也有一个嵌套的bucket数组,我需要做什么才能访问bucket元素?让我也粘贴其他代码位,这样更清晰。我的要求是,对于每个od_对,我需要捕获每个桶码及其可用编号:@Mihir你能用给定的要求创建另一个问题吗?这对未来的读者来说会更清楚。谢谢。但是,我也有一个嵌套的bucket数组,我需要做什么才能访问bucket元素?让我也粘贴其他代码位,这样更清晰。我的要求是对于每个od_对,我需要捕获每个桶代码及其可用编号。我将把整个代码粘贴到一个新的注释中,供您参考。如果你能在这方面指导我,好吗?@Mihir我可以,但我建议你问一个新问题@费尼奥:提出了一个新问题。
7015400:8727100
7015400:8814001