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

Flutter如何将Dialogflow返回的字符串转为可解析的JSON格式

Flutter 处理flutter_dialogflow返回数据的方案

你打印的内容本质是Dart Map/List结构的默认toString输出,不是标准JSON字符串,getListMessage() 接口返回的本身就是已经解析完成的可直接操作的Dart结构化数据,不需要额外做字符串转JSON的操作。

如果确实需要生成标准JSON字符串或者做序列化处理,按照下面步骤操作:

  • 第一步:引入Dart内置的转换库,无需额外安装依赖
    import 'dart:convert';
    
  • 第二步:将返回的结构化数据转为标准JSON字符串
    AIResponse aiResponse = await dialogflow.detectIntent(query);
    List<dynamic> messageList = aiResponse.getListMessage();
    // 转为标准JSON字符串
    String standardJson = jsonEncode(messageList);
    // 打印出来就是带双引号的标准JSON格式
    print(standardJson);
    
  • 第三步:如果需要把JSON字符串转回可操作的Dart对象,使用jsonDecode方法
    dynamic parsedData = jsonDecode(standardJson);
    // 示例:提取欢迎语
    String welcomeText = parsedData[1]['payload']['message'];
    // 示例:遍历FAQ列表
    List faqList = parsedData[1]['payload']['metadata']['payload'];
    for (var faq in faqList) {
      print('标题:${faq['title']},描述:${faq['message']}');
    }
    

使用数据前建议做非空校验和类型判断,避免空指针或类型转换异常,空安全场景下可以搭配?.、!运算符使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:45:08