You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何去除JSON中的转义字符

在Flutter中去除JSON转义字符的解决方法

问题根源

出现转义字符通常是因为重复执行了JSON编码操作——比如先对List调用一次jsonEncode(),之后又不小心对生成的JSON字符串再次编码,导致双引号被转义成\"。另外,打印时显示正常是因为print()方法会自动解析转义字符,实际字符串本身仍带有转义标记。

具体解决方案

  • 避免重复编码
    确保只对原始List执行一次JSON编码操作(jsonEncode()和json.encode()是同一方法的不同写法):

    import 'dart:convert';
    
    void main() {
      List<Map<String, dynamic>> originalList = [
        {"label":"name","field_type":"text","option":[]}
      ];
      // 仅编码一次
      String validJson = jsonEncode(originalList);
      print(validJson); // 输出无转义的正常JSON:[{"label":"name","field_type":"text","option":[]}]
    }
    
  • 还原已带转义的字符串
    如果已经得到了带转义的JSON字符串(比如"{\"label\":\"name\",\"field_type\":\"text\",\"option\":[]}"),可以通过一次解码操作还原成正常JSON:

    import 'dart:convert';
    
    void main() {
      String escapedJson = "{\"label\":\"name\",\"field_type\":\"text\",\"option\":[]}";
      // 先解码为原始List,再重新编码(或直接转字符串)
      List<dynamic> restoredList = jsonDecode(escapedJson);
      String normalJson = jsonEncode(restoredList);
      print(normalJson); // 输出正常JSON
    }
    

内容的提问来源于stack exchange,提问作者Prabhakar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:12:04