我錯誤地將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. 解析與GSON
- 5. 解析GSON
- 6. always int int = float float in python
- 7. is if(float> int)if(float>(float)int)?
- 8. GSON解析反對
- 9. GSON解析安卓
- 10. 用Gson解析JSON
- 11. GSON陣列解析
- 12. Android - JSON/GSON解析
- 13. JSON解析與GSON
- 14. GSON解析凍結
- 15. GSON解析陣列
- 16. java.lang.NoClassDefFoundError:解析失敗:Lcom/google/gson/Gson;
- 17. 從Gson更改爲Jackson解析JSON
- 18. EditText解析爲int幫助
- 19. javascript將int值解析爲int
- 20. 用逗號解析數字爲float?
- 21. 解析色VS解析INT
- 22. 解釋因子分析中的float-int問題
- 23. 解析一個Java float的字符串到python int
- 24. Lua:從float轉換爲int
- 25. 將int轉換爲float?
- 26. Python float和int行爲
- 27. 將float轉換爲int
- 28. Haskell將Float轉換爲Int
- 29. 將FLOAT轉換爲INT
- 30. 將Float轉換爲Int
可能因爲0.0可以完全表示爲整數。 –
@GabeSechan你是什麼意思? – Harry
0.0 = 0 0是一個整數。其中0.1不是一個整數。 –