gpt4 book ai didi

java - 将 java.util.ArrayList 转换为 gson.JsonElement

转载 作者:行者123 更新时间:2023-11-30 10:11:33 25 4
gpt4 key购买 nike

向后端 API 发出一些请求,以接收一些包含我需要在测试运行中使用的 JSON 对象的数组。使用 RestAssured+Junit5+Gradle+Allure。

 Response response = 
given()
.header("Content-Type", "application/json")
.body(jsonPayload)
.when()
.post(STAGINGSCHEDULE+signature)
.then()
.assertThat()
.statusCode(200)
.body("message", is("Payload valid"),
"payment_schedule", hasSize(greaterThan(0)))
.extract().response();

我会收到这个:

ArrayList<JsonElement> jsonElement = response.path("payment_schedule.payment_dates");

此命令将向我显示一个包含我需要的 json 对象的数组。但是无法将其转换为 gson.JsonObject。

System.out.println("jsonElement.get(1):   "+jsonElement.get(1));

平时自己生成数据的时候用的是什么方法。对象为gsonObject,数组为gsonArray

callbackJournalObject.add("schedule", scheduleArray);

当我尝试使用

callbackJournalObject.add("schedule", jsonElement.get(1));

我明白了

java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.google.gson.JsonElement

JSON 响应正文示例:

{
"status": 0,
"message": "Payload valid",
"payment_schedule": [
{
"total": 16800.0,
"term": 3,
"payment_dates": [
{
"date": "16.10.2018",
"amount": 5600.0
},
{
"date": "16.11.2018",
"amount": 5600.0
},
{
"date": "17.12.2018",
"amount": 5600.0
}
]
},
{
"total": 16650.0,
"term": 6,
"payment_dates": [
{
"date": "16.10.2018",
"amount": 2800.0
},
{
"date": "16.11.2018",
"amount": 2800.0
},
{
"date": "17.12.2018",
"amount": 2800.0
},
{
"date": "16.01.2019",
"amount": 2800.0
},
{
"date": "18.02.2019",
"amount": 2800.0
},
{
"date": "18.03.2019",
"amount": 2650.0
}
]
}
]
}

最佳答案

该解决方案对我有用。

ArrayList<JsonElement> jsonElement = response.path("payment_schedule.payment_dates");
String jsonElementGet1 = String.valueOf(jsonElement.get(1));
scheduleArray = (JsonArray)jsonParser.parse(jsonElementGet1);

关于java - 将 java.util.ArrayList 转换为 gson.JsonElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52388880/

25 4 0