无法为我的“地图”赋值<;字符串,字符串>;`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”}代码>