Intereting Posts
Не могу найти подходящий пример для класса спрайтов android 2d opengl, который не использует GL11Ext для рисования Как определить, был ли восстановлен или сохранен фрагмент Eclipse: как восстановить настройки по умолчанию в перспективе? RecyclerView Бесконечный прослушиватель прокрутки, вызываемый дважды Как получить объект из списка в setOnItemClickListener в android? Как разрешить это предупреждение «W / Atlas: Указатель 0x0, а не в getPreloadedDrawables? » Обнаружение браузера в приложении (WebView) с помощью PHP / Javascript SetVideoSurfaceTexture не удалось: -22 в медиаплеере Android: перспектива DDMS против перспективы отладки Лидерская панель отображается только для тестировщиков Каковы требования к использованию CouchDB на Android? Android Studio 1.2 – несоответствие проектной кодировки по умолчанию Android NDK переполняет dalvik локальную справочную таблицу JNI Как правильно отвязать услуги Что не так с отображением текста в Android Studio?

Почему 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 .