您能否说明如何在dart中将json 序列化/反序列化到json /从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, };}这是 map 中使用的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), };}现在,当调用MapTest.toJson()时,将引发以下错误: Converting object to an encodable object failed: _LinkedHashMap len:2您对toJson()/fromJson()方法有什么想法吗?谢谢。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 编码/解码是正确的,只有JSON仅允许将字符串作为键。将_mapHell更改为Map<String, SimpleData>将可以正常工作。 class MapTest { final _mapHell = Map<String, SimpleData>(); // Change the Map type MapTest() { _mapHell['1'] = SimpleData(42, "Astfgl"); // Use int, ie: '1' _mapHell['666'] = SimpleData(1234, "Vassenego"); } MapTest.fromJson(Map<String, dynamic> json) { _mapHell = jsonDecode(json['coworkers']); } Map<String, dynamic> toJson() => { 'coworkers' : jsonEncode(_mapHell), };}关于json - 如何在Dart/Flutter中正确地对 map 进行序列化/反序列化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61691991/ (adsbygoogle = window.adsbygoogle || []).push({});
10-09 04:21