从 json 对象数组中提取元素
Extract element from json object array
我有以下 json 回复。在第 2 层对象数组的响应下方可以有 x 个项目
{"data": {
"layer1": {
"layer2": [
{
"item1": "result1",
"item2": "result2"
},
{
"item1": "result3",
"item2": "result4"
}
]
}
}
}
我的需求是如果我知道一个元素的值(例如item1
值result4),如何获取item1
的对应项值这是 result3.
我有以下代码可以检索对象数组。是否可以用下面的输出检索上面的内容。
List<Object> actual = response.jsonPath().getList("data.layer1.layer2");
我想你的意思是如果 item2 是 result4 则找到 item1。使用您编写的代码,您可以迭代列表并将对象类型转换为映射并检查 item2 是否存在值为 result4 然后获取 item1.
for(Object item: actual)
{
if(((Map)item).get("item2").equals("result4")){
return ((Map)item).get("item1");
}
}
PS:我没有测试过这段代码,但从逻辑上讲它应该可以工作。
我有以下 json 回复。在第 2 层对象数组的响应下方可以有 x 个项目
{"data": {
"layer1": {
"layer2": [
{
"item1": "result1",
"item2": "result2"
},
{
"item1": "result3",
"item2": "result4"
}
]
}
}
}
我的需求是如果我知道一个元素的值(例如item1
值result4),如何获取item1
的对应项值这是 result3.
我有以下代码可以检索对象数组。是否可以用下面的输出检索上面的内容。
List<Object> actual = response.jsonPath().getList("data.layer1.layer2");
我想你的意思是如果 item2 是 result4 则找到 item1。使用您编写的代码,您可以迭代列表并将对象类型转换为映射并检查 item2 是否存在值为 result4 然后获取 item1.
for(Object item: actual)
{
if(((Map)item).get("item2").equals("result4")){
return ((Map)item).get("item1");
}
}
PS:我没有测试过这段代码,但从逻辑上讲它应该可以工作。