浏览器不支持double类型引发的血案

2021/7/3 7:21:57androidandroid

image.png

Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String

flutter报错搜索了各种情况,都无法解决。最后只能逐行debugger查找问题源。
最后结果,虽然简单,却是我从未遇到也从未想到的一个问题。
先说原因:
把double类型当int处理导致了如标题的bug

经过:
我在浏览器中模拟请求查看得到返回值结果:

{
	number: 0
}

自然而然认为这是一个int类型的。
而实际上问题出在了浏览器上面:
浏览器是不支持解析double类型的数据的,比如0.1,也确实会显示0.1,但是如0.0,浏览器里就会显示0,而非0.0。

最后,在android studio控制台终于看到了数据的真面目:

{"number":0.0}