You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将嵌套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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:00:49