将 JSON 字符串剪切为其值 RegEx

时间:2021-02-03 17:41:29

标签: json regex flutter

我正在尝试在 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 是否走在正确的道路上?

提前致谢。

1 个答案:

答案 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);
相关问题