背景
在我们打印json字符串时,中文字符在输出的时候会是unicode码,并且json也没有格式化。
可以使用dart:convert库中的JsonEncoder类来将JSON字符串格式化为可读性更好的形式。
import 'dart:convert';
void main() {
// 原始JSON字符串
String jsonString = '{"name": "John", "age": 30, "city": "New York"}';
// 将JSON字符串转换为对象
var jsonObject = json.decode(jsonString);
// 格式化JSON字符串
var prettyJsonString = JsonEncoder.withIndent(' ').convert(jsonObject);
// 输出格式化的JSON字符串
print(prettyJsonString);
}
输出将会是一个格式化的JSON字符串,如下所示:
{
"name": "John",
"age": 30,
"city": "New York"
}
在JsonEncoder.withIndent方法中,参数' '表示每个缩进级别使用两个空格进行缩进。您可以将其更改为任何其他缩进字符串。json.decode方法中,会把unicode编码的中文自动编码成对应的中文字符,而convert不会再将中文再反编码成unicode编码。