使用dart:convert,我可以得到一个未缩进的字符串。
dart:convert
var unformattedString = JSON.encode(jsonObject);
字符串如何将JSON对象转换为缩进字符串?
w1e3prcc1#
一种方法是创建一个JSONEncoder.withIndent示例。
String getPrettyJSONString(jsonObject){ var encoder = new JsonEncoder.withIndent(" "); return encoder.convert(jsonObject); }
字符串
uyto3xhc2#
用这个吧,对我有用
String prettyJson(dynamic json) { var spaces = ' ' * 4; var encoder = JsonEncoder.withIndent(spaces); return encoder.convert(json); }
p1tboqfb3#
虽然现有的答案涵盖了基础知识,但如果您正在处理包含枚举或日期等复杂值的Map,那么这里有一个有效的方法:1.准备Map:使用flutter_helper_utils包中的makeMapEncodable(map)。该函数确保所有map值都兼容JSON,这对于复杂数据类型至关重要。1.生成JSON:使用JsonEncoder将准备好的map转换为缩进的JSON字符串。
makeMapEncodable(map)
JsonEncoder
import 'dart:convert'; import 'package:flutter_helper_utils/flutter_helper_utils.dart'; final yourMap = { 'id': 2, 'firstName': 'John', 'lastName': 'Doe', 'timePeriod': TimePeriod.week, // Example enum. 'date': DateTime.now(), }; final encodableMap = makeMapEncodable(yourMap); final json = const JsonEncoder.withIndent(' ').convert(encodableMap); print(json);
生成JSON:
{ "id": 2, "firstName": "John", "lastName": "Doe", "timePeriod": "week", "date": "2024-01-06 12:31:13.915016" }
型
**为什么使用makeMapEncodable?**它处理Map以处理非标准的JSON类型(枚举,DateTime等),确保没有运行时错误和正确格式化的JSON输出。
makeMapEncodable
有关更多实用程序,请查看flutter_helper_utils文档here。
3条答案
按热度按时间w1e3prcc1#
一种方法是创建一个JSONEncoder.withIndent示例。
字符串
uyto3xhc2#
用这个吧,对我有用
字符串
p1tboqfb3#
虽然现有的答案涵盖了基础知识,但如果您正在处理包含枚举或日期等复杂值的Map,那么这里有一个有效的方法:
1.准备Map:使用flutter_helper_utils包中的
makeMapEncodable(map)
。该函数确保所有map值都兼容JSON,这对于复杂数据类型至关重要。1.生成JSON:使用
JsonEncoder
将准备好的map转换为缩进的JSON字符串。字符串
生成JSON:
型
**为什么使用
makeMapEncodable
?**它处理Map以处理非标准的JSON类型(枚举,DateTime等),确保没有运行时错误和正确格式化的JSON输出。有关更多实用程序,请查看flutter_helper_utils文档here。