我需要在String屬性中讀取整數和雙精度值,但GSON將每個整數都視爲雙精度(是的,我知道它是JSON標準)。GSON將整數視爲雙精度
所以,比如我有類:
public class MyObject {
String value;
}
在某些情況下,我有了這個JSON - {"value": 1}
,有時 - {"value": 2.4}
。
而我必須顯示這些值,因爲它們是,但第一個值將被讀爲1.0
。
我試過使用JsonDeserializer
和TypeAdapter
,都有類似getAsString
的方法,它們都先將值轉換爲double然後返回它。
方法如何看起來JsonPrimitive
:
@Override
public String getAsString() {
if (isNumber()) {
return getAsNumber().toString();
} else if (isBoolean()) {
return getAsBooleanWrapper().toString();
} else {
return (String) value;
}
}
您可以在這裏看到isNumber
檢查。
那麼可以通過某種方式解決這個問題嗎?
我需要顯示尾隨零,如果它來自服務器端。如果它沒有零,我需要顯示無零。這就是爲什麼我說我想離開服務器的價值。 – dewarder
@谷歌我誤解了這個問題,我只是更新了一個 –
但問題在這裏,我不能得到「1」,而不是「1.0」使用Gson時。 Gson自動將「1」轉換爲「1.0」 – dewarder