Intereting Posts
Диакритические символы / международные символы в AutoCompleteTextView Открытие диалогового окна ввода в Android Как Android определяет, имеет ли приложение «Высокое использование батареи» в разделе «Недавние запросы местоположения»? В проекте может использоваться версия Gradle, которая не содержит метода compileSdkVersion () Приложение чата с использованием Firebase: получите уведомление при получении нового сообщения – Android Как установить dymanic изображения в ViewFlipper в android? Android Multiple Notification отправляет те же данные при нажатии Как передать значения из класса в действие – Android Получить wifi трафик stroid android Android 4.2.2+ Hotspot Gson – конвертировать из Json в типизированный ArrayList <T> Локальный прокси-сервер, работающий на Android-устройстве Android: включение полос прокрутки в пользовательском представлении Cometchat, получение volley Ошибка библиотеки com.android.volley.ServerError 206 при попытке войти в систему Как отладить службу доступности?

Почему GSON ставит десятичную точку и нуль после всех моих номеров JSON, которые изначально не содержат десятичных чисел?

Я прочитал JSON из веб-службы и преобразовал все объекты JSON в HashMap<String, String> с помощью GSON.

Я тестировал, и мой JSONObject прекрасно (без десятичной точки в любом из чисел), но у объекта карты есть элементы со всеми числами с десятичной точкой и нулем после этого.

Вот мой код:

 try { jsonArray = json.getJSONArray("PropertyListings"); for(int i = 0; i < jsonArray.length(); i++){ JSONObject c = jsonArray.getJSONObject(i); HashMap<String, String> map = new HashMap<String, String>(); map = (HashMap<String, String>) new Gson().fromJson(jsonArray.getString(i), map.getClass()); listOfProperties.add(map); } 

Из Википедии. Основные типы JSON:

Число – знаковое десятичное число, которое может содержать дробную часть и может использовать экспоненциальную запись E. JSON не разрешает такие числа, как NaN, и не делает различий между целыми числами и плавающей точкой. (Несмотря на то, что JavaScript использует формат с плавающей запятой с двойной точностью для всех своих числовых значений, другие языки, реализующие JSON, могут кодировать номера по-разному)

Он не делает различий между ints и float. Поэтому он думает, что каждое число может иметь дробную часть, поэтому, когда вы конвертируете число в String, оно оставляет эту часть. Попробуйте преобразовать ее в Integer .