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
相关产品推荐
相关产品推荐

