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

Flutter调用Yummly2接口运行时报NoSuchMethodError: 'call'错误求解决

问题原因

报错的核心是recipe.dart文件中JSON字段读取语法错误:_JsonMap属于Map类型,仅支持用**方括号[]**读取指定键的对应值,你错误使用了圆括号(),系统会将该操作识别为调用call方法,而Map类型没有该实例方法,因此抛出NoSuchMethodError。

解决方案

1. 修正recipe.dart的fromJson方法

首先把所有json('xxx')的写法替换为json['xxx'],同时对齐Yummly2接口实际返回的字段名、大小写:

factory Recipe.fromJson(dynamic json) {
  return Recipe(
      name: json['displayName'] as String,
      img: json['images'][0]['hostedLargeUrl'] as String,
      rating: json['rating']?.toDouble() ?? 0.0,
      time: json['totalTime'] as String);
}

2. 补全api_recipe.dart的依赖导入

你当前代码中调用了jsonDecode但没有导入转换依赖,在文件顶部添加如下导入:

import 'dart:convert';

3. 可选的健壮性优化

可以添加判空逻辑避免接口字段缺失导致崩溃:

  • 读取data['feed']前先判断是否为null
  • 遍历feed项时先判断i['content']、i['content']['details']是否存在,再添加到_temp数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:06:03