欢迎光临
我们一直在努力

在 idea 控制台打印 json 数据

控制台输出方式,推荐优先用 JSON 格式化打印,能看到最完整清晰的结构。

补充实用技巧

  • 优先用 Spring 注入的 ObjectMapper
    自己 new ObjectMapper() 是默认配置,而 Spring Boot 容器里已经自动配置好了一个全局 ObjectMapper(统一处理了日期格式、空值规则等),直接 @Autowired 注入使用,输出格式和接口返回完全一致,效果更好。

  • 本身是 JSON 字符串不用再转
    如果你拿到的已经是一个 JSON 格式的字符串,直接 System.out.println(jsonStr) 即可,不要再调用 writeValueAsString,否则会把引号转义,反而无法阅读。

  • 序列化失败的兜底方案
    如果遇到对象转 JSON 报错,临时调试可以直接用 System.out.println(对象),依赖类的 toString() 方法查看内容;最直观的方式还是打 Debug 断点,在变量面板里查看完整结构。




  • 方式1:JSON 格式化打印(最直观,推荐)

    把 page 对象转成带缩进的 JSON 字符串输出,结构和接口返回完全一致,不受实体类是否重写 toString 影响,所有字段和数据都能完整看到。

    SpringBoot 默认集成了 Jackson,直接用即可:

    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.SerializationFeature;

    @GetMapping("/list")
    public Result<PageVO<Employees>> getEmployeeList(EmpQueryDTO empQueryDTO) throws Exception {
    IPage<Employees> page = empService.getEmpList(empQueryDTO);

    // JSON 格式化打印
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.enable(SerializationFeature.INDENT_OUTPUT); // 开启缩进换行
    String pageJson = objectMapper.writeValueAsString(page);
    System.out.println("分页对象完整结构:\\n" + pageJson);

    // 如果只想单独看某个字段,也可以直接调用方法打印:
    System.out.println("总条数:" + page.getTotal());
    System.out.println("当前页数据:" + page.getRecords());
    System.out.println("总页数:" + page.getPages());

    return Result.success(PageVO.restPage(page));
    }

    控制台输出效果就是标准的 JSON 格式,和之前给你展示的结构示例完全一样。


    方式2:日志打印(企业项目规范写法)

    正式项目不推荐用 System.out,一般用 SLF4J 日志框架打印,方便级别控制和后续排查。

  • 在 Controller 类上加 @Slf4j 注解(Spring Boot 默认集成 Lombok)
  • 方法内用 log.info() 输出:
  • import lombok.extern.slf4j.Slf4j;
    import com.fasterxml.jackson.databind.ObjectMapper;

    @RestController
    @Slf4j
    public class EmployeeController {

    @Autowired
    private EmployeesService empService;

    @Autowired
    private ObjectMapper objectMapper; "Spring自动注入,不用自己new"

    @GetMapping("/list")
    public Result<PageVO<Employees>> getEmployeeList(EmpQueryDTO empQueryDTO) throws Exception {
    IPage<Employees> page = empService.getEmpList(empQueryDTO);

    // 日志格式化打印
    log.info("分页查询结果:\\n{}",
    objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(page));
    log.info("总条数" + page.getTotal());
    log.info("总页数" + page.getPages());
    log.info("当前页" + page.getCurrent());

    return Result.success(PageVO.restPage(page));
    }
    }

    赞(0)
    未经允许不得转载:171主机测评 » 在 idea 控制台打印 json 数据
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址