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

如何将Sqflite获取的List<Map>编码为键带双引号的标准JSON格式?

解决方案

你遇到的是Dart动态类型Map序列化的问题,不需要手动拼接引号,用Dart内置的序列化能力就能搞定,操作步骤如下:

  • 第一步:导入Dart内置转换库
    import 'dart:convert';
    
  • 第二步:转换原始List<Map<dynamic,dynamic>>为键为String类型的标准列表
    // 你的原始数据列表
    List<Map<dynamic, dynamic>> rawItems = [
      {
        'product_id': 52302,
        'name': 'جمبسوت اطفالي',
        'image': 'https://khsomat.net/wp-content/uploads/2021/09/2-54.jpg',
        'regularprice': 34000,
        'saleprice': 27500,
        'permalink': 'https://khsomat.net/product/%d8%ac%d9%85%d8%a8%d8%b3%d9%88%d8%aa-%d8%a7%d8%b7%d9%81%d8%a7%d9%84%d9%8a/',
        'quantity': 1
      }
    ];
    
    // 转换为符合JSON序列化要求的列表
    List<Map<String, dynamic>> processedItems = rawItems.map((dynamicItem) {
      return dynamicItem.map((key, value) => MapEntry(key.toString(), value));
    }).toList();
    
  • 第三步:直接传入请求即可
    你直接把processedItems传给createOrder的itemsList参数即可,Dio在发送POST请求时会自动将其序列化为符合要求的带双引号的JSON格式,无需额外处理。

如果你需要手动验证序列化结果,可以调用jsonEncode(processedItems),打印输出的内容就是你要求的目标格式,完全匹配WooCommerce REST API的参数要求。
注意:Dart调试时直接打印Map对象不会显示引号,这是调试输出的格式特性,不是数据本身的问题,只要完成上述类型转换,序列化后的结果一定符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:09:02