You need to enable JavaScript to run this app. 循环向Map键赋值失败:NoSuchMethodError:方法'[]='被调用在null对象上
优惠活动
大模型
产品
解决方案
定价
更多

循环向Map键赋值失败:NoSuchMethodError:方法'[]='被调用在null对象上

问题排查结论

核心故障点

你仅声明了Map<String, List> ret;变量但未做初始化,此时ret的值为null,执行ret[dVal] = lit相当于对空对象调用[]=赋值方法,会直接抛出空指针相关异常,导致第一次循环就终止。

本地Visual Studio运行未触发报错大概率是调试环境未开启严格空安全校验,或是本地Mock测试时ret被意外赋值过,Android端运行时启用了严格空安全校验,空对象操作会直接抛出异常。

修复方案

直接将ret的声明行改为初始化空Map即可解决核心报错:

Map<String, List> ret = {};

其他潜在隐患优化建议

  • 明确resList的泛型类型,避免jsonDecode返回的dynamic类型后续触发类型校验异常:
    List<Map<String, dynamic>> resList = jsonDecode(res);
    
  • 给double.parse加异常兜底,避免接口返回非合法数字格式时抛出异常:
    // 示例写法,取值失败时默认返回0.0
    double.tryParse(resList[i]["HappinessLevel"]?.toString() ?? "0") ?? 0.0
    
  • 对Date字段取值做非空校验,避免空值作为String类型的Map key触发类型异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 23:15:08