Dart 类型“int”不是“double”类型的子类型

Web*_*ter -2 dart

我在dart中使用numtype来解析json数据,由于我们的服务器是在NodeJS中实现的,整数和双精度类型没有任何意义,当服务器发送带有值的json字段4并且4.0两者4都是json字符串时,所以我用来num解析json数字

在我的flutter应用程序中,我需要将解析后的数据传递给变量double,当服务器发送带有小数部分的数字时(即4.1)一切正常,runtimeType解析时numdouble 但是当服务器发送不带小数部分时,runtimeType解析时numint并且我有Dart type 'int' is not a subtype of type 'double'错误

我正在寻找一种方法来表示 Dart 也强烈检查num类型,如果我传递numdouble变量会抛出错误

我不想关闭implicit-casts,因为我有很多dynamic隐式转换的类型

lrn*_*lrn 5

Dart JSON 解析器将整数解析为intvalue,将小数解析为double. 因此,JSON 数字4.1被读入双精度型, 也是如此4.0,但普通数字4则变成int。没有办法配置它,你必须处理你得到的值。

如果您想使用 JSON 数字值作为double,请.toDouble()在将其分配给变量之前使用该值的方法doubledouble d = jsonValue["name"].toDouble();var d = (jsonValue["name"] as num).toDouble();