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

Rest-Assured提交POST请求传入生成对象时出现空请求体问题

问题原因及解决方案

Rest Assured默认使用Jackson库将Java对象序列化为JSON请求体,序列化得到空对象是以下几种常见原因导致的:

  • 模型类缺少对应字段的public getter方法
    Jackson默认仅会序列化public修饰的字段,或者带有public getter方法的私有字段。你使用的构建器模式如果仅实现了属性赋值逻辑,没有给每个需要序列化的字段(比如McpSalesInvoicesPost的invoices、McpSalesInvoices的type/amount等)添加public的get方法,Jackson无法识别到需要序列化的字段,就会生成空JSON对象。
    如果使用Lombok生成构建器,仅添加@Builder注解不会自动生成getter,需要补充@Getter或者@Data注解。
  • Jackson序列化规则被修改
    如果项目中全局配置了Jackson的序列化策略(比如仅序列化带@JsonProperty注解的字段),要么给所有需要序列化的字段加上@JsonProperty注解,要么调整序列化策略为默认规则。
  • 提前验证序列化结果
    你可以先单独测试对象序列化逻辑,排除Rest Assured配置问题:
// 单独测试序列化输出
ObjectMapper objectMapper = new ObjectMapper();
String jsonResult = objectMapper.writeValueAsString(requestBody);
System.out.println(jsonResult);

如果这段代码输出为{},即可确认是模型类的序列化配置问题,修复后再接入Rest Assured即可正常生成请求体。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:45:03