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

Spring返回JSON时空数组属性缺失,如何确保该属性始终显示?

解决Spring JSON响应中空集合被排除的问题

要让items属性始终出现在JSON响应中(有数据返回数组,无数据返回[]),可以通过以下几种方式处理:

1. 单个字段强制序列化

在items字段上添加@JsonInclude(JsonInclude.Include.ALWAYS)注解,强制Jackson无论该集合是否为空都进行序列化:

public class MyResponse {
    private String name;

    @JsonInclude(JsonInclude.Include.ALWAYS)
    private List<String> items = new ArrayList<>();

    // 其他属性、getter和setter方法
}

2. 全局配置统一处理

如果希望所有空集合都默认序列化为[],可以在Spring Boot的配置文件中设置:

  • application.properties:
# 确保空数组被序列化,同时排除null字段(可选)
spring.jackson.serialization.write-empty-json-arrays=true
spring.jackson.default-property-inclusion=NON_NULL
  • application.yml:
spring:
  jackson:
    serialization:
      write-empty-json-arrays: true
    default-property-inclusion: NON_NULL

这个配置会让所有空集合输出为[],同时不返回值为null的字段,兼顾空集合显示和响应简洁性。

3. 确保getter方法返回非空集合

如果items有可能被设置为null,可以在getter方法中做兜底处理,保证返回空集合而非null:

public List<String> getItems() {
    if (items == null) {
        items = new ArrayList<>();
    }
    return items;
}

这样即使items被意外设为null,序列化时也会输出[]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:12:46