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

Spring Boot中@RequestMapping和@GetMapping返回JSON无缩进如何解决

Spring Boot接口返回JSON格式化缩进配置方案

以下几种方案均可实现返回JSON带缩进格式化的效果:

方案1:全局配置文件配置(推荐)

直接在项目配置文件中添加Jackson序列化缩进配置即可全局生效:

  • 若使用application.properties配置文件,添加如下配置:
spring.jackson.serialization.indent-output=true
  • 若使用application.yml/application.yaml配置文件,添加如下配置:
spring:
  jackson:
    serialization:
      indent-output: true

方案2:单个接口单独配置

如果不需要全局生效,仅需指定接口返回格式化JSON,可以手动调用Jackson的格式化序列化方法:

@RestController
@RequestMapping("/")
public class FriendResource {
    // 注入Spring容器托管的ObjectMapper
    @Autowired
    private ObjectMapper objectMapper;

    @GetMapping
    public ResponseEntity<String> getDude() throws JsonProcessingException {
        // 使用带默认缩进的序列化器输出JSON
        String prettyJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(new Dude());
        return ResponseEntity.ok()
                .contentType(MediaType.APPLICATION_JSON)
                .body(prettyJson);
    }
}

方案3:代码全局配置Jackson

如果需要通过代码自定义全局Jackson配置,可以注册自定义的ObjectMapper Bean:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JacksonConfig {
    @Bean
    public ObjectMapper objectMapper() {
        return new ObjectMapper()
                // 开启序列化缩进输出
                .enable(SerializationFeature.INDENT_OUTPUT);
    }
}

注意:JSON格式化会增加响应报文体积,建议仅在开发、测试环境开启,生产环境保持默认压缩输出即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 19:15:03