无法为我的“地图”赋值<;字符串,字符串>;`json解码后的变量

无法为我的“地图”赋值<;字符串,字符串>;`json解码后的变量,json,dart,flutter,Json,Dart,Flutter,在我对Map变量进行json编码,然后对其进行json解码之后,我尝试为其赋值。下面的代码示例是一个简化的示例 import 'dart:convert'; String toJson(dynamic object) { var encoder = new JsonEncoder.withIndent(" "); return encoder.convert(object); } dynamic fromJson(String jsonString) { return j

在我对
Map
变量进行json编码,然后对其进行json解码之后,我尝试为其赋值。下面的代码示例是一个简化的示例

import 'dart:convert';

String toJson(dynamic object) {
  var encoder = new JsonEncoder.withIndent("     ");
  return encoder.convert(object);
}

dynamic fromJson(String jsonString) {
  return json.decode(jsonString);
}

void main() {
  Map<String, String> data = {"hello": "world"};
  String jsonString = toJson(data);
  data = fromJson(jsonString);
  print(data);
}
导入'dart:convert';
字符串toJson(动态对象){
var编码器=新的JSONECODER.withIndent(“”);
返回编码器。转换(对象);
}
动态fromJson(字符串jsonString){
返回json.decode(jsonString);
}
void main(){
地图数据={“你好”:“世界”};
字符串jsonString=toJson(数据);
data=fromJson(jsonString);
打印(数据);
}
当我运行它时,它失败了

Unhandled exception:
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Map<String, String>'
未处理的异常:
类型“\u InternalLinkedHashMap”不是类型“Map”的子类型
它以不同的错误失败

Uncaught exception:
TypeError: Instance of '_JsonMap': type '_JsonMap' is not a subtype of type 'Map<String, String>'
未捕获异常:
TypeError:“\u JsonMap”的实例:类型“\u JsonMap”不是类型“Map”的子类型
解决方法, 我不喜欢它,但它解决了这个问题。使用
Map.from(…)

例如:

void main() {
  Map<String, String> data = {"hello": "world"};
  String jsonString = toJson(data);
  data = Map<String, String>.from(fromJson(jsonString));
  print(data);
}
void main(){
地图数据={“你好”:“世界”};
字符串jsonString=toJson(数据);
data=Map.from(fromJson(jsonString));
打印(数据);
}
解决方法, 我不喜欢它,但它解决了这个问题。使用
Map.from(…)

例如:

void main() {
  Map<String, String> data = {"hello": "world"};
  String jsonString = toJson(data);
  data = Map<String, String>.from(fromJson(jsonString));
  print(data);
}
void main(){
地图数据={“你好”:“世界”};
字符串jsonString=toJson(数据);
data=Map.from(fromJson(jsonString));
打印(数据);
}

看起来类型不匹配。如果您替换
Map data={“hello”:“world”},它就会工作
地图数据={“hello”:“world”}看起来像是类型不匹配。如果您替换
Map data={“hello”:“world”},它就会工作
地图数据={“hello”:“world”}