Json 如何在dart/Flatter中正确序列化/反序列化地图?

Json 如何在dart/Flatter中正确序列化/反序列化地图?,json,flutter,dart,Json,Flutter,Dart,您能否演示如何在dart中序列化/取消序列化与json之间的映射?例如,下面是一个简单的数据类: class SimpleData { int _blah; String _str; SimpleData([this._blah, this._str]); SimpleData.fromJson(Map<String, dynamic> json) { _blah = json['b']; _str = json['s']; } Map&

您能否演示如何在dart中序列化/取消序列化与json之间的映射?例如,下面是一个简单的数据类:

class SimpleData {
  int _blah;
  String _str;

  SimpleData([this._blah, this._str]);

  SimpleData.fromJson(Map<String, dynamic> json) {
    _blah = json['b'];
    _str = json['s'];
  }

  Map<String, dynamic> toJson() => {
    'b' : _blah,
    's' : _str,
  };
}
类SimpleData{
内布拉赫;
字符串_str;
简单数据([这个._布拉,这个._str]);
SimpleData.fromJson(映射json){
_blah=json['b'];
_str=json['s'];
}
映射到JSON()=>{
“b”:诸如此类,
‘s’:_str,
};
}
以下是地图中使用的SimpleData类:

class MapTest {
  Map<int, SimpleData> _mapHell = Map<int, SimpleData>();

  MapTest() {
    _mapHell[1] = SimpleData(42, "Astfgl");
    _mapHell[666] = SimpleData(1234, "Vassenego");
  }

  MapTest.fromJson(Map<String, dynamic> json) {
    _mapHell = jsonDecode(json['coworkers']);
  }

  Map<String, dynamic> toJson() => {
    'coworkers' : jsonEncode(_mapHell),
  };
}
类映射测试{
Map _mapHell=Map();
地图测试(){
_mapHell[1]=SimpleData(42,“Astfgl”);
_mapHell[666]=SimpleData(1234,“Vassenego”);
}
fromJson(映射json){
_mapHell=jsonDecode(json['coworkers']);
}
映射到JSON()=>{
“同事”:jsonEncode(_mapHell),
};
}
现在,当调用
MapTest.toJson()
时,抛出以下错误:

将对象转换为可编码对象失败:_LinkedHashMapLen:2

你知道
toJson()/fromJson()
方法有什么问题吗?
谢谢。

编码/解码是正确的,只是JSON只允许字符串作为密钥。 将
\u mapHell
更改为
Map
将正常工作

类映射测试{
final _mapHell=Map();//更改映射类型
地图测试(){
_mapHell['1']=SimpleData(42,“Astfgl”);//使用int,即:“1”
_mapHell['666']=SimpleData(1234,“Vassenego”);
}
fromJson(映射json){
_mapHell=jsonDecode(json['coworkers']);
}
映射到JSON()=>{
“同事”:jsonEncode(_mapHell),
};
}