我錯誤地將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不是一個整數。 –