web-dev-qa-db-ja.com

java.lang.NumberFormatException:intが必要でしたが、1行目8454で0.6でした

デモプロジェクトでの呼び出しにレトロフィットライブラリを使用しています。

次のエラーを受け取りました:

Java.lang.NumberFormatException:intが必要ですが、1行8列のパスで0.6でした$ .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
    },

私はレトロフィットの経験があまりないので、このプロジェクトを学び、統合することにしました。

誰か提案はありますか?

送信されるJSONを制御することはできません。

13
DJ-DOO

floatの代わりにdoubleまたはintを使用してみてください。 0.6は整数ではなく、10進数です。 Javaは自動的に小数をdoublesとして解釈することに注意してください。浮動小数点数の例は0.6f

16
ayanokouji

これは、パーサーがintを期待しているのに対し、取得した実際の値はfloatであったためです。あなたができることは、モデルの値のタイプをintからfloatに変更することです。

これにより、その値をどこで使用しても、コードで問題が発生する可能性があります。その浮動小数点値を整数にキャストすることで解決できます。

1
Msp