我在api graphql上提出请求,并得到body的响应:
{
"dataRequests": [
{
"status": "success",
"title": "token",
"values": {
"limit": 1,
"offset": 0,
"count": 1,
"total": 1,
"elements": [
{
"type": "DOMAIN",
"permission": "default",
"properties": [
{
"name": "property:id",
"value": 390
},
{
"name": "setting:crawler:token",
"value": "token(here's real token)"
}
],
"filters": []
}
]
}
}
]
}
我想用token获取字段“value”的值。但我有一个问题,希望它。
我的代码可以获取“datarequests”字段的Map列表(使用restassured):
GraphQLSteps graphQLSteps = new GraphQLSteps();
Response response = graphQLSteps.postProjectToken(id);
List<Map<String, String>> dataRequest = response.jsonPath().getList("dataRequests");
但是,如果我试图得到“值”字段的Map列表:
List<Map<String, String>> dataRequest = response.jsonPath().getList("value");
我得到“null”值。我认为这是因为我必须把它 Package 在整个树中:值-元素-属性,然后才是值。但是它非常复杂,我试着用这种方法得到它,但是得到的结果是“null”。
我注意到,如果打印列表中现有Map的条目集:
List<Map<String, String>> dataRequest = response.jsonPath().getList("dataRequests");
for (Map<String, String> map : dataRequest) {
System.out.println(map.entrySet());
}
我得到的结果是:
[status=success, title=token, values={limit=1, offset=0, count=1, total=1, elements=[{type=DOMAIN, permission=default, properties=[{name=property:id, value=390}, {name=setting:crawler:token, value=someToken}], filters=[]}]}]
在那里可以看到代币的价值。
您能提示我,我如何从这个列表<map<string,string>>或者通过反序列化api的其他方式获得带有token的“value”吗?
暂无答案!
目前还没有任何答案,快来回答吧!