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

Flutter中JSON解析字段为空致ListView报错,如何显示‘Empty’?

解决Flutter中ListView显示JSON数据时的空值断言错误

我来帮你搞定这个问题~你遇到的这个错误是因为Text组件不允许传入null值,但你解析后的customerName(或其他字段)是null,触发了Flutter的断言检查。下面给你几种简单有效的解决办法:

方法一:解析JSON时直接处理空值

在getShipment方法里,给可能为空的字段设置默认值,这样后续使用数据时就不用反复判断了。用Dart的??运算符就能轻松实现——它会在左边值为null时自动替换成右边的默认值:

Results getShipment(int index) {
  return Results(
    cargoTrackerCode: data[index]["cargoTrackerCode"] ?? 'Empty',
    // 给customerName也加上空值处理
    customerName: data[index]["customerName"] ?? 'Empty',
    // 其他字段同理,根据业务需求添加
  );
}

方法二:在Text组件内直接判断

如果不想修改解析逻辑,也可以在使用Text的时候直接做空值判断:

Padding(
  child: Text(
    // 当customerName为null时,显示'Empty'
    widget.results.customerName ?? 'Empty',
    style: ...,
  ),
)

进阶:同时处理null和空字符串

如果你的JSON里可能返回空字符串("")而不是null,可以用更严谨的判断,确保两种情况都显示'Empty':

Padding(
  child: Text(
    (widget.results.customerName?.isEmpty ?? true) ? 'Empty' : widget.results.customerName,
    style: ...,
  ),
)

这里的?.是安全调用运算符,避免customerName为null时调用isEmpty报错;?? true则把null的情况转换成true,最终实现“空值或空字符串都显示默认文本”的效果。

选哪种方式看你的需求:如果希望所有用到这个数据的地方都统一显示默认值,就用方法一;如果只是某个特定场景需要处理,方法二更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:51:52