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
相关产品推荐
相关产品推荐

