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

Flutter/Dart解析时间序列JSON时Null转String类型错误怎么解决

问题分析与修复方案

错误诱因

报错是因为PriceData.fromJson方法中使用的JSON键名和实际JSON文件中的键名不匹配,导致读取对应字段时返回Null,而你定义的所有PriceData属性都是非空String类型,无法接收Null值,因此抛出type 'Null' is not a subtype of type 'String'异常。
不匹配的三个字段如下:

  • 实际JSON键名为5. adjusted close,代码中错误写为5. adjustedClose
  • 实际JSON键名为7. dividend amount,代码中错误写为7. dividendAmount
  • 实际JSON键名为8. split coefficient,代码中错误写为8. splitCoefficient

修复方法

将PriceData类的工厂构造方法中的对应键名替换为和JSON一致的名称即可,修改后的PriceData.fromJson代码如下:

factory PriceData.fromJson(dynamic json) {
  return PriceData(
      open: json["1. open"],
      high: json["2. high"],
      low: json["3. low"],
      close: json["4. close"],
      adjustedClose: json["5. adjusted close"], // 替换为和JSON一致的键名
      volume: json["6. volume"],
      dividendAmount: json["7. dividend amount"], // 替换为和JSON一致的键名
      splitCoefficient: json["8. split coefficient"]); // 替换为和JSON一致的键名
}

可选优化:如果不确定字段是否一定存在,可将字段定义为可空类型(如String? adjustedClose),或者读取时添加默认值兜底,避免偶发的空值异常。

内容的提问来源于stack exchange,提问作者Yi Wen Edwin Ang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 20:15:07