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

如何使用Map将嵌套JSON转换为RestAssured POST请求并传递多输入

用Java Map构建RestAssured POST请求体(嵌套JSON)

目标JSON结构

需要构建的嵌套JSON请求体如下:

{
  "@serviceName": "75MultipleService",
  "inputs": [
    {
      "@name": "inp1",
      "value": "8",
      "@type": "number"
    },
    {
      "@name": "inp2",
      "value": "8",
      "@type": "number"
    }
  ]
}

现有代码补充修改

你当前的代码只添加了inp1,要补充inp2只需在Arrays.asList()中新增一个对应输入项的HashMap对象即可。修改后的完整代码如下:

可读性更强的写法

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class RestAssuredRequestBuilder {
    public static void main(String[] args) {
        // 构建顶层请求体Map
        Map<String, Object> requestBody = new HashMap<>();
        requestBody.put("@serviceName", "75MultipleService");
        
        // 构建第一个输入项
        Map<String, Object> input1 = new HashMap<>();
        input1.put("@name", "inp1");
        input1.put("value", "8");
        input1.put("@type", "number");
        
        // 构建第二个输入项
        Map<String, Object> input2 = new HashMap<>();
        input2.put("@name", "inp2");
        input2.put("value", "8");
        input2.put("@type", "number");
        
        // 将两个输入项存入List后,放入顶层Map
        requestBody.put("inputs", Arrays.asList(input1, input2));
    }
}

保留匿名内部类的写法

如果偏好你原来的匿名类风格,也可以这么写:

Map<String, Object> map = new HashMap<>();
map.put("@serviceName", "75MultipleService");
map.put("inputs", Arrays.asList(
    new HashMap<String, Object>() {{
        put("@name", "inp1");
        put("value", "8");
        put("@type", "number");
    }},
    new HashMap<String, Object>() {{
        put("@name", "inp2");
        put("value", "8");
        put("@type", "number");
    }}
));

在RestAssured中发送POST请求

构建好Map后,直接通过body()方法传入即可,RestAssured会自动将Map序列化为JSON格式:

import io.restassured.RestAssured;

public class PostRequestSender {
    public static void main(String[] args) {
        // 先构建好上述的requestBody或map对象
        
        RestAssured.given()
            .contentType("application/json")
            .body(requestBody) // 传入构建好的请求体Map
            .when()
            .post("你的目标接口URL")
            .then()
            .statusCode(200) // 验证响应状态码
            .log().all(); // 打印完整响应信息
    }
}

内容的提问来源于stack exchange,提问作者Kanchan Sanap

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:35:28