我正在尝试转换从Google返回的坐标。API成双倍。返回的响应的一个简化部分是..。
{
locationData: {
bounds: {
northeast: 40.222222,
southwest: 38.265987
}
}
}但是,当我使用print(locationData['bounds']['northeast'])时,我的控制台读取该值并理解该值为40.222222,但是,当我尝试使用一个解析方法时,我会得到以下错误:
var neLat = double.parse(locationData['bounds']['northeast']);
I/颤振(10537):在类型类型cast中,“double”不是“String”类型的子类型 I/颤振(10537):双来自飞镖:核心 I/颤振(10537):弦来自飞镖:核心
这个错误使我相信我的解析是无效的,尽管它显然是一个双值,就像字符串一样。我是不是错过了这个转换的东西?我在使用double.parse的多个例子中看到了转换,我只是不知道我的问题是什么。
发布于 2018-04-03 22:33:21
如果该值是从JSON中解析出来的,那么Dart知道该值是double,错误告诉我该值的类型是double,转换期望的类型为string。
所以,一旦我明白了,错误就更明显了!
发布于 2022-01-22 17:00:06
我也面临着同样的问题。我知道这是个愚蠢的回答,但它对我有效。我使用Getx保存状态,并在将字符串转换为双倍时显示错误。
字符串不是double类型的子类型。
由于保存了以前变量的状态,所以我重新启动了应用程序,尝试了类型转换,并且运行良好。
https://stackoverflow.com/questions/49639993
复制相似问题