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

Spring Boot返回JSON对象前端显示undefined问题咨询

解决Spring Boot返回JSON后前端属性undefined的问题

这个问题大概率是Java对象序列化后的JSON字段名和前端访问的字段名不匹配导致的,咱们一步步来分析和解决:

核心原因

你后端的LoanFilterServiceResponseDto里,调用了setSuccess(true),对应的Java属性应该是success,Spring Boot默认使用Jackson进行JSON序列化,对于boolean类型的属性,当getter方法是isSuccess()时,序列化后的JSON字段名会是success(而非isSuccess)。但你前端代码里用serviceResponse.isSuccess去访问,自然就会拿到undefined。

快速解决方案

方案1:修改前端代码(最简单)

直接把前端访问的字段改成JSON实际返回的success:

function onFilterProductsSuccess(serviceResponse) {
  alert("serviceResponse.success: "+ serviceResponse.success);
};

方案2:修改后端DTO,指定JSON字段名(如果必须用isSuccess)

如果前端不想改代码,可以在DTO的success属性上添加Jackson的@JsonProperty注解,强制指定序列化后的字段名:

import com.fasterxml.jackson.annotation.JsonProperty;

public class LoanFilterServiceResponseDto {
    @JsonProperty("isSuccess")
    private boolean success;
    // 其他属性...
    
    public boolean isSuccess() {
        return success;
    }
    
    public void setSuccess(boolean success) {
        this.success = success;
    }
    // 其他getter/setter...
}

排查验证步骤

为了确保问题定位准确,你可以做以下验证:

  • 打开浏览器开发者工具(F12),切换到Network标签,找到这个POST请求,查看响应的JSON内容,确认实际返回的字段名到底是success还是isSuccess。
  • 检查后端DTO的getter/setter是否正确,比如isSuccess()是否对应success属性,有没有拼写错误。
  • 确认后端响应的Content-Type是application/json,避免前端无法正确解析JSON。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:54:50