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

Flutter请求API遇编码错误:无法将Null转为可编码对象

问题解决:JSON序列化Null值失败的错误

核心问题

你代码里的错误原因很直接:你写的是大写的Null(这是Dart的类型名),而不是表示空值的小写null常量。json.encode无法序列化类型标识符,所以抛出了转换失败的异常。

修正后的代码

把所有大写的Null替换成小写的null即可:

final response = await http.post(Uri.parse('http://"api"/api/createPin'),
  body: json.encode({
    'location': null,
    'description': null,
    'qrcode': null,
    'ttl': null,
    'tier': null,
    'type': null,
    'user': null,
    'images': null,
    'viewable_users': null
  }),
);

额外优化建议

如果你的API允许省略这些可选字段(而不是必须传null值),可以直接去掉这些键值对,减少不必要的请求内容:

final response = await http.post(Uri.parse('http://"api"/api/createPin'),
  body: json.encode({}), // 空对象
);

这样既符合API的null允许规则,也更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:09:38