it-swarm.com.ru

java.lang.NumberFormatException: ожидал int, но был 0,6 в строке 1 столбца 8454

Я использую библиотеку модернизации для своих звонков в демонстрационном проекте.

Я получил следующую ошибку:

Java.lang.NumberFormatException: ожидал int, но был 0,6 в строке 1 столбца 8454 путь $ .result.results.ads [2] .acres

Я понимаю, что это до GSON.

Я покажу вам JSON, в который он попадает:

   {  
       "ad_id":739580087654,
       "property_type":"site",
       "house_type":"",
       "selling_type":"private-treaty",
       "price_type":"",
       "agreed":0,
       "priority":2,
       "description":"Beautiful elevated 0.6 acre site - zoned residential - and within easy walk to this popular and scenic coastal village\r\n\r\n\r\nthe site area is zoned residential ( i.e. can be constructed on for residential home) and has beautiful coastal views\r\n\r\nSpiddal is an exceptionally popular location , just 8 miles west of Galway City but the area has not been over developed.\r\n\r\nAll services and family amenities are location in the village centre.\r\n\r\n",
       "price":135000,
       "bedrooms":null,
       "bathrooms":null,
       "tax_section":"0",
       "square_metres":0,
       "acres":0.6,   <----------------------TRIPPING UP HERE
       "features":[  
          "Zoned residential",
          "within easy walk of coastal village of Spiddal",
          "with coastal views"
       ],
       "ber_rating":"",
       "ber_code":"",
       "ber_epi":0,             
       "city":"",
       "general_area":"Connemara",
       "postcode":null,
       "latlon_accuracy":1,
       "main_email":"",
       "cc_email":"",
       "auction_address":"",
       "start_date":1384425002,
       "listing_date":1384425002,
       "agreed_date":0,
       "auction_date":0,
       "tags":1
    },

Я не настолько опытен с Retrofit, поэтому решил учиться и интегрироваться в этот проект. 

Есть ли у кого-нибудь предложения? 

У меня нет никакого контроля над отправкой JSON.

7
DJ-DOO

Попробуйте использовать float или double вместо int; 0.6 не является целым числом, это десятичное число. Обратите внимание, что Java автоматически интерпретирует десятичные числа как doubles; пример с плавающей точкой будет 0.6f.

12
ayanokouji

Это потому, что синтаксический анализатор ожидает int, тогда как фактическое значение, которое он получил, было float. Что вы можете сделать, это изменить тип этого значения с int на float в вашей модели. 

Это может вызвать проблемы в вашем коде, где бы вы ни использовали это значение. Вы можете решить это, приведя значение с плавающей точкой к целому числу.

1
Msp