如何从api graphql获取数据?

mqkwyuun  于 2021-07-12  发布在  Java
关注(0)|答案(0)|浏览(279)

我在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”吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题