如何将嵌套Payload转换为net.minidev.json.JSONObject用于Restassured POST请求
将嵌套Payload转换为net.minidev.json.JSONObject并用于RestAssured POST请求
1. 引入依赖
首先确保项目中引入json-smart(net.minidev.json所属库)和RestAssured的依赖,以Maven为例:
<!-- json-smart --> <dependency> <groupId>net.minidev</groupId> <artifactId>json-smart</artifactId> <version>2.4.11</version> <!-- 使用最新稳定版即可 --> </dependency> <!-- RestAssured --> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>5.3.0</version> <!-- 使用最新稳定版即可 --> <scope>test</scope> </dependency>
2. 实现方式
方式一:手动构建JSONObject
直接通过API逐层构建目标JSON结构:
import net.minidev.json.JSONArray; import net.minidev.json.JSONObject; import io.restassured.RestAssured; public class SubwayGroupRequest { public static void main(String[] args) { // 创建顶层JSON对象 JSONObject requestBody = new JSONObject(); // 添加字符串类型属性 requestBody.put("object", "new_subway_group"); requestBody.put("name", "Group 1"); // 创建数组并添加元素 JSONArray subwaysArray = new JSONArray(); subwaysArray.add(1); subwaysArray.add(2); subwaysArray.add(3); requestBody.put("subways", subwaysArray); // 作为请求体发送POST请求 RestAssured.given() .contentType("application/json") .body(requestBody) .post("your-api-endpoint-url") .then() .statusCode(200); // 根据实际接口预期调整状态码 } }
方式二:解析JSON字符串生成JSONObject
如果已有现成的JSON字符串,可直接解析为JSONObject:
import net.minidev.json.JSONObject; import net.minidev.json.parser.JSONParser; import net.minidev.json.parser.ParseException; import io.restassured.RestAssured; public class SubwayGroupRequest { public static void main(String[] args) throws ParseException { String payload = "{\n" + " \"object\": \"new_subway_group\",\n" + " \"name\": \"Group 1\",\n" + " \"subways\": [\n" + " 1,\n" + " 2,\n" + " 3\n" + " ]\n" + "}"; // 解析字符串为JSONObject JSONParser parser = new JSONParser(); JSONObject requestBody = (JSONObject) parser.parse(payload); // 发送POST请求 RestAssured.given() .contentType("application/json") .body(requestBody) .post("your-api-endpoint-url") .then() .statusCode(200); } }
3. 注意事项
- 确保
json-smart版本与RestAssured依赖版本兼容,避免Jar包冲突; - 替换代码中的
your-api-endpoint-url为实际的API接口地址; - 解析JSON字符串时需处理
ParseException,可选择捕获或抛出。
内容的提问来源于stack exchange,提问作者user2451016
相关产品推荐
相关产品推荐

