Selenium webdriver 如何检索jsonPath()返回的映射值。rest assured的getMap方法

Selenium webdriver 如何检索jsonPath()返回的映射值。rest assured的getMap方法,selenium-webdriver,rest-assured,rest-assured-jsonpath,Selenium Webdriver,Rest Assured,Rest Assured Jsonpath,如何检索jsonPath()返回的映射值。rest assured的getMap方法 我正试图在Map中获取下面api上的响应,我能够成功地获取该响应,但是当我尝试访问下面代码中键“id”的值时,我在“String id=test.get(“id”);行上得到了强制转换错误 我试着做很多事情,比如 String id = test.get("id").toString(); or String id = String.valueOf(test.get("id")); 但这无助于解决

如何检索jsonPath()返回的映射值。rest assured的getMap方法 我正试图在Map中获取下面api上的响应,我能够成功地获取该响应,但是当我尝试访问下面代码中键“id”的值时,我在“String id=test.get(“id”);行上得到了强制转换错误

我试着做很多事情,比如

String id = test.get("id").toString();      
or
String id = String.valueOf(test.get("id"));
但这无助于解决问题

api的响应如下

{
    "data": {
        "id": 2,
        "name": "fuchsia rose",
        "year": 2001,
        "color": "#C74375",
        "pantone_value": "17-2031"
    }
}

请尝试以下代码,它对我来说工作正常:

Response apiResponse = RestAssured.given().get("http://reqres.in/api/user/2");
Map<Object, Object> test = apiResponse.jsonPath().getMap("data");
System.out.println(test);
String id = test.get("id").toString();
System.out.println("ID : " + id);
Response apiResponse=RestAssured.given().get(“http://reqres.in/api/user/2");
Map test=apiResponse.jsonPath().getMap(“数据”);
系统输出打印LN(测试);
String id=test.get(“id”).toString();
System.out.println(“ID:+ID”);
我所做的更改是:将Map of(String,String)更改为Map(Object,Object),因为我们知道Map的每个键都是String,但值可以是任何数据类型

我希望它能解决您的问题。

正确的代码是

    Response apiResponse = RestAssured.given().get("http://reqres.in/api/user/2");
    Map<Object, Object> test = apiResponse.jsonPath().getMap("data");
    System.out.println(test);

    for (Object e : test.keySet()) {
        System.out.println(" Key is " + e + "  , value is " + test.get(e));
Response apiResponse=RestAssured.given().get(“http://reqres.in/api/user/2");
Map test=apiResponse.jsonPath().getMap(“数据”);
系统输出打印LN(测试);
对于(对象e:test.keySet()){
System.out.println(“键为“+e+”,值为“+test.get(e));
只需尝试以下方法:

import com.jayway.restassured.path.json.JsonPath;

JsonPath extractor = JsonPath.from(apiResponse.toString());
String id = extractor.getString("data.id");
    Response apiResponse = RestAssured.given().get("http://reqres.in/api/user/2");
    Map<Object, Object> test = apiResponse.jsonPath().getMap("data");
    System.out.println(test);

    for (Object e : test.keySet()) {
        System.out.println(" Key is " + e + "  , value is " + test.get(e));
import com.jayway.restassured.path.json.JsonPath;

JsonPath extractor = JsonPath.from(apiResponse.toString());
String id = extractor.getString("data.id");