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

Flutter自定义User Model解析不同接口响应时属性全为null如何解决

问题根因

更新用户资料接口的返回JSON做了一层嵌套,所有用户属性都存放在外层key为user的子Map中。你直接将jsonDecode(response.body)得到的外层Map传入User.fromJson方法,方法尝试直接从外层Map读取id/name/email/image字段,自然无法读取到对应值,最终所有属性都为null。

修复方案

解析时先取出外层user对应的子Map,再传入User.fromJson即可:

// 解码完整响应
Map<String, dynamic> respMap = jsonDecode(response.body);
// 取出内层用户数据解析
User updatedUser = User.fromJson(respMap['user']);

如果需要增强鲁棒性,可以增加判空逻辑:

Map<String, dynamic> respMap = jsonDecode(response.body);
User updatedUser = const User();
if (respMap['user'] != null) {
  updatedUser = User.fromJson(respMap['user']);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:54:02