Flutter中如何将后端返回字符串转为JSON对象适配flutterQuill编辑器
解决FlutterQuill适配:将后端返回的非标准JSON字符串转为JSON对象
第一步:清理HTML标签
后端返回的字符串包裹在<p>标签里,先移除标签提取核心内容:String rawResponse = '<p>[{insert: comming comming}, {insert: , attributes: {list: ordered}}]</p>'; String cleanedContent = rawResponse.replaceAll(RegExp(r'<\/?p>'), '');第二步:修复非标准JSON格式
原始内容里的键名(如insert、attributes)未加双引号,不符合JSON规范,用正则给键名补上双引号:String validJsonString = cleanedContent.replaceAll(RegExp(r'(\w+):'), r'"$1":');第三步:解析为JSON对象并适配FlutterQuill
用Dart内置的json.decode把合规的JSON字符串转为List对象,直接传入FlutterQuill的Document:import 'dart:convert'; import 'package:flutter_quill/flutter_quill.dart'; List<dynamic> quillDocumentJson = json.decode(validJsonString); QuillController quillController = QuillController( document: Document.fromJson(quillDocumentJson), selection: const TextSelection.collapsed(offset: 0), );
注意:如果后端返回内容包含带特殊字符的键名,需要调整正则表达式适配,当前场景下上述正则可满足需求。
内容的提问来源于stack exchange,提问作者Debabrata Basak
相关产品推荐
相关产品推荐

