我错误地将json字段解析为:"mileage":0.0"
在我的代码中变成了int
。它被成功解析,直到值为0.0
。但只要json字段的值从0.0
更改为任何其他值,我就开始获得JsonFormatException。我正在使用Gson在我的应用程序中解析json。所以我的问题是,为什么在值为0.0
时没有抛出异常,因为它仍然是浮动的?Gson解析float为int
0
A
回答
2
Gson的工作方式取决于你如何进行反序列化。我敢打赌,你让它自动进行反序列化,可能是由@SerializedName
注释驱动的。因此,让我们假设你有一些类,在它是这样的:
@SerializedName("val")
private int myValue;
当GSON反序列化文本到您的对象的实例,它会“尽力”给你想要的东西。这包括强制从一种类型到另一种类型的某些值。对于上面建立的类,Gson不仅会成功强制0.0
到0
,它还会成功强制"1.0"
(字符串)到1
。
当强制是“不可能的”时,您将只能得到Exception
;只要您有0.1
或"1.5"
,Gson知道它不能将该值表示为int
,因此它会引发异常。
请注意,这可以在两个方向上工作。如果您的json包含整数(例如{"val":3}
),但您的课程声明private String myValue
,则Gson将成功强制编号为"3"
。
相关问题
- 1. C#严格的Int/Float解析
- 2. GSON解析{}为空对象
- 3. 解析与GSON
- 4. always int int = float float in python
- 5. 用Gson解析JSON
- 6. GSON解析阵列
- 7. JSON解析与GSON
- 8. Android - JSON/GSON解析
- 9. java.lang.NoClassDefFoundError:解析失败:Lcom/google/gson/Gson;
- 10. 从Gson更改为Jackson解析JSON
- 11. EditText解析为int帮助
- 12. javascript将int值解析为int
- 13. 用逗号解析数字为float?
- 14. 解析色VS解析INT
- 15. 解释因子分析中的float-int问题
- 16. 解析一个Java float的字符串到python int
- 17. C#比较FLOAT为int
- 18. Lua:从float转换为int
- 19. 使用Gson解析json java
- 20. GSON - 忽略解析异常
- 21. Gson(Json)解析异常
- 22. GSON解析索引的JSON
- 23. Android Json与GSON解析?
- 24. 使用GSON解析JSON
- 25. JSON解析与凌空GSON
- 26. Gson:解析泛型集合
- 27. 使用GSON解析长JSON
- 28. GSON JSON解析返回null
- 29. 同名字段GSON解析
- 30. 用gson解析JSON数组
可能因为0.0可以完全表示为整数。 –
@GabeSechan你是什么意思? – Harry
0.0 = 0 0是一个整数。其中0.1不是一个整数。 –