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

Flutter中ListView.builder持续返回null无法获取JSON数据如何解决

问题排查与修复方案

1. 首要排查点:HonPage实例化时未传Status参数

你定义的HonPage组件中status是可选参数,默认值为null。如果创建HonPage实例时没有主动传入已经解析好的Status对象,widget.status本身就是空值,此时访问widget.status.title自然会返回空,最终显示为NULL。
你可以在initState中加打印快速验证:

@override
void initState() {
  super.initState();
  print('传入的Status实例:${widget.status}');
  if (widget.status != null) {
    print('Status的title字段值:${widget.status!.title}');
  }
}

如果打印结果中widget.status为null,直接去上层调用代码补传参数即可。

2. 第二排查点:JSON解析逻辑不匹配

你给出的接口返回JSON是数组结构:

[{"title": "NAME ME", "status": "publish"}]

而Status的构造方法接收的是Map<String, dynamic>类型的参数,如果你直接把整个数组传给Status构造方法,会导致解析失败,title和status字段都不会被正确赋值。
正确的解析写法应该是先取数组中对应下标的对象,再传给Status构造:

// 假设接口返回的原始数据存在responseData变量中
Status singleStatus = Status(responseData[0]); // 取数组第一个元素解析

3. 可选优化:修复ListView逻辑问题

你当前写死itemCount: 10,且所有列表项都读取同一个widget.status的title值,就算参数传对也会出现10条完全相同的内容,不符合常规列表展示多条数据的需求。如果要展示多条Status数据,可以修改组件参数为列表类型:

class HonPage extends StatefulWidget {
  final List<Status> statusList;
  const HonPage({Key? key, required this.statusList}) : super(key: key);

  @override
  _HonPageState createState() => _HonPageState();
}

class _HonPageState extends State<HonPage> {
  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: widget.statusList.length,
      itemBuilder: (context, index) {
        final item = widget.statusList[index];
        return ListTile(
          title: Text(item.title ?? ""),
        );
      }
    );
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:06:03