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

如何在Android Studio调试控制台美化Flutter API返回的JSON日志?

在Flutter中美化打印JSON日志的几种方法

1. 用Dart原生库实现(无额外依赖)

Dart自带的dart:convert库提供了JsonEncoder,可以直接格式化JSON输出,不需要引入第三方包:

import 'dart:convert';

// 封装一个格式化打印的方法
void printPrettyJson(dynamic jsonData) {
  final encoder = JsonEncoder.withIndent('  '); // 用2个空格作为缩进,可自定义
  print(encoder.convert(jsonData));
}

// 使用示例
void main() {
  var apiResponse = {
    "code": 200,
    "message": "success",
    "data": [
      {"id": 1, "name": "Flutter Demo", "status": true},
      {"id": 2, "name": "JSON Test", "status": false}
    ]
  };
  printPrettyJson(apiResponse);
}

执行后控制台会输出带缩进、换行的结构化JSON,一目了然。

2. 借助第三方日志库

如果需要更丰富的日志功能(比如分级打印、颜色标记),可以用成熟的第三方库:

方法一:使用logger库

这个库会自动识别JSON并格式化,同时支持日志级别区分:

  • 在pubspec.yaml中添加依赖:
    dependencies:
      logger: ^2.0.2+1
    
  • 代码示例:
    import 'package:logger/logger.dart';
    
    // 初始化日志工具,可自定义配置
    final logger = Logger(
      printer: PrettyPrinter(
        methodCount: 0, // 隐藏调用栈方法信息,简化输出
        colors: false, // 若控制台颜色显示异常可关闭
        indent: 2, // JSON缩进空格数
      ),
    );
    
    void main() {
      var apiResponse = {
        "code": 200,
        "data": [{"id": 1, "content": "test"}]
      };
      logger.d(apiResponse); // debug级别打印,自动格式化JSON
    }
    

方法二:使用pretty_json库

专注于JSON格式化的轻量库:

  • 添加依赖:
    dependencies:
      pretty_json: ^2.0.0
    
  • 代码示例:
    import 'package:pretty_json/pretty_json.dart';
    
    void main() {
      var apiResponse = {"data": [{"id": 1, "name": "demo"}]};
      print(prettyJson(apiResponse, indent: 2));
    }
    

3. Android Studio控制台快速格式化

如果已经打印了未格式化的JSON文本,可直接在控制台操作:

  • 选中控制台中杂乱的JSON内容
  • 右键选择「Reformat Code」(快捷键:Windows/Linux为Ctrl+Alt+L,Mac为Command+Option+L)
  • Android Studio会自动将选中内容格式化为结构化的JSON

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:15:33