FeelsLike.fromJson(Map<String, dynamic> json) {
day = double.parse(json['day']);
night = double.parse(json['night']);
eve = double.parse(json['eve']);
morn = double.parse(json['morn']);
}上面的代码给出了警告未处理的异常:类型'double‘不是'String'的子类型
我也试过..。
FeelsLike.fromJson(Map<String, dynamic> json) {
day = (json['day']).toDouble;
night = (json['night']).toDouble();
eve = (json['eve']).toDouble();
morn = (json['morn']).toDouble();
}但是,它给出了类似于未处理异常的警告:类型'() => double‘不是'double'的子类型
我也试过..。
FeelsLike.fromJson(Map<String, dynamic> json) {
day = double.parse((json['day'])).toDouble();
night = double.parse((json['night'])).toDouble();
eve = double.parse((json['eve'])).toDouble();
morn = double.parse((json['morn'])).toDouble();
}然后它给了我一个警告,类似于这个未处理的异常:类型'double‘不是'String'的一个子类型
谁能告诉我如何消除这个警告吗?
发布于 2021-03-30 19:59:57
当您将JSON字符串解析为Map或其他类似函数时,该函数将识别JSON中使用的基本原语类型,并将它们转换为省道中相同的等效类型,因此当您调用JSON‘’night‘时,它的类型是double not string,如果您有类似的JSON,则不需要再次解析它。
{
"Point":9.5
}解析此函数时,将返回一个Map对象包含一个名称为"Point“的键,其值为9.5,值为双类型,而不是字符串类型,对于具有Map类型的list、int、double、string类型和嵌套JSON对象,这是正确的。
{
"Point":9.5
}和
{
"Point":"9.5"
}第一个值是双值,第二个值是因为引号,是一个字符串。
发布于 2022-11-04 22:11:08
这是因为您只能尝试从字符串解析,而不是从双或整数解析。
external static double parse(String source,
[@deprecated double onError(String source)?]);正如你在上面看到的。您应该在参数中传递一个字符串。所以,试试其中之一:
double.parse(json['day'].toString());或
double.tryParse(json['day'].toString());注意,如果失败,tryParse()返回null,但是如果失败,解析()将抛出异常。
https://stackoverflow.com/questions/66877072
复制相似问题