You need to enable JavaScript to run this app. Java中如何加载嵌套JSON数据并构造POJO用于API测试?
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何加载嵌套JSON数据并构造POJO用于API测试?

实现方案

核心逻辑说明

你需要依次构造列表子项、外层POJO对象,再直接传入Rest Assured的body()方法即可,框架会自动将POJO序列化为符合要求的JSON结构。

完整测试类代码

import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        // 1. 初始化外层POJO对象
        ClassName className = new ClassName();
        
        // 2. 构造4组name-value的子项列表
        List<ListOfItems> itemList = new ArrayList<>();
        
        ListOfItems item1 = new ListOfItems();
        item1.setName("name1");
        item1.setValue("Jack");
        itemList.add(item1);
        
        ListOfItems item2 = new ListOfItems();
        item2.setName("nameDate");
        item2.setValue("20-08-2021-08-00-00");
        itemList.add(item2);
        
        ListOfItems item3 = new ListOfItems();
        item3.setName("address");
        item3.setValue("address here");
        itemList.add(item3);
        
        ListOfItems item4 = new ListOfItems();
        item4.setName("name2");
        item4.setValue("Smith");
        itemList.add(item4);
        
        // 3. 给外层POJO的字段赋值
        className.setListOfItems(itemList);
        className.setSomething(new ArrayList<>()); // 空列表要初始化,避免序列化出null
        className.setSize(1); // 数值可按实际需求调整,你示例代码写的150可直接替换此处的1
        
        // 4. 直接把POJO传入body方法发起请求
        given()
            .contentType("application/json") // 必须指定content-type为JSON,否则序列化会失败
            .body(className)
        .when()
            .post("/endpoint")
        .then()
            // 后续自定义断言逻辑
            .statusCode(200);
    }
}

注意事项

  • 确保你的项目中已经引入了Rest Assured配套的JSON序列化依赖,比如jackson-databind,框架会自动完成POJO到JSON的转换,无需手动处理格式
  • 你给出的示例JSON本身存在语法错误:第三个address子项末尾多了多余逗号,且第三个和第四个子项之间缺少分隔逗号,实际运行时POJO序列化不会出现该问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 16:06:03