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

Flutter中_Map是什么?jsonEncode转换_Map报错如何解决?

Flutter JSON编码错误解决:Converting object to an encodable object failed: _Map len:1

错误原因

JSON规范强制要求对象的键必须是字符串类型,你代码里的Map使用了整数1作为键,jsonEncode无法直接处理非字符串键的Map,因此触发编码失败错误。

你的问题代码:

final Map a = {1: "hello"};
final b = jsonEncode(a); // 此处报错
print(b);

解决方案

方案1:直接使用字符串作为Map键

修改Map的键为字符串类型,符合JSON规范:

final Map a = {"1": "hello"};
final b = jsonEncode(a);
print(b); // 输出:{"1":"hello"}

方案2:动态转换键为字符串

如果需要保留整数键的业务逻辑,可以通过map方法将所有键转换为字符串后再编码:

final Map<int, String> a = {1: "hello"};
// 转换键为字符串
final encodedMap = a.map((key, value) => MapEntry(key.toString(), value));
final b = jsonEncode(encodedMap);
print(b); // 输出:{"1":"hello"}

补充说明

Flutter中dart:convert提供的jsonEncode严格遵循JSON标准,仅支持字符串类型的对象键,任何非字符串键(整数、布尔值等)都会导致编码失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:12:09