如何在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
相关产品推荐
相关产品推荐

