我正在尝试在 Flutter/Dart 中插入键后将 JSON 字符串剪切为值。
例如我有这个 JSON 字符串:
[{"insert":"Test12\n"},{"insert":"Test1","attributes":{"b":true}},{"insert":"\nTest"},{"insert":"\n","attributes":{"block":"quote"}},{"insert":"Test","attributes":{"s":true}},{"insert":"\nTest"},{"insert":"\n","attributes":{"block":"ol"}},{"insert":"Test"},{"insert":"\n","attributes":{"block":"ol"}},{"insert":"Test"},{"insert":"\n","attributes":{"block":"ul"}},{"insert":{"_type":"hr","_inline":false}},{"insert":"\n"},{"insert":"Test","attributes":{"i":true,"u":true,"s":true,"b":true}},{"insert":"\n\n"}]
我想在插入后将此字符串转换为其值。所以结果是:
<块引用>Test12 Test1 测试测试测试测试测试测试
例如,我不需要这些字符 "" , 。 {} \n
测试代表不同的字符串。
我玩了一些 RegEx,但我无法让它工作。我使用 RegEx 是否走在正确的道路上?
提前致谢。
答案 0 :(得分:0)
它是 json,所以你也可以解码它:
var jsonString = '[{"insert":"Test12\n"},{"insert":"Test1","attributes":{"b":true}},{"insert":"\nTest"},{"insert":"\n","attributes":{"block":"quote"}},{"insert":"Test","attributes":{"s":true}},{"insert":"\nTest"},{"insert":"\n","attributes":{"block":"ol"}},{"insert":"Test"},{"insert":"\n","attributes":{"block":"ol"}},{"insert":"Test"},{"insert":"\n","attributes":{"block":"ul"}},{"insert":{"_type":"hr","_inline":false}},{"insert":"\n"},{"insert":"Test","attributes":{"i":true,"u":true,"s":true,"b":true}},{"insert":"\n\n"}]';
jsonString = jsonString.replaceAll('\n', '\\n');
// jsonDecode() will convert the json to objects of primitive types.
var result = jsonDecode(jsonString) as List<dynamic>;
var inserts = [ for(var map in result) map["insert"]];
for(var insert in inserts)
print(insert);