Gson .JsonSyntaxException - java.lang.NumberFormatException: Invalid double: ""

12,926

Solution 1

"job_price":"0.00" is not a double but a string,

change to

"job_price": 0.00

Solution 2

private int month;

and

"month":"Июль"

also do not match

Share:
12,926
Artem
Author by

Artem

Android and Flutter dev

Updated on June 21, 2022

Comments

  • Artem
    Artem almost 2 years

    I run this code and have crash. Do you can help me?

    public class RepairCostsData {
    
    @Expose
    private int month;
    @Expose
    private int month_id;
    @Expose
    private int year;
    @Expose
    private double summa;
    @Expose
    private double detail_price;
    @Expose
    private double job_price;
    

    ...

    Call Gson().fromJson() for this class

    RepairCostsData[] repairCostsData = new Gson().fromJson(jsonObject.getJSONArray(DATA).toString(),
                                                                    RepairCostsData[].class);
    

    **JSON from server **

    [{"month":"","month_id":"3","year":"2014","detail_price":0,"job_price":0,"summa":0},{"month":"","month_id":"4","year":"2014","detail_price":0,"job_price":0,"summa":0},{"month":"","month_id":"5","year":"2014","detail_price":0,"job_price":0,"summa":0},{"month":"","month_id":"6","year":"2014","detail_price":0,"job_price":0,"summa":0},{"month":"Июль","month_id":"7","year":"2014","detail_price":"250.00","job_price":0,"summa":250},{"month":"","month_id":"8","year":"2014","detail_price":0,"job_price":0,"summa":0}]

    Logs

     com.google.gson.JsonSyntaxException: java.lang.NumberFormatException:
       Invalid double: ""
                   at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:232)
                   at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:222)
                   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
                   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172)
                   at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
                   at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:72)
                   at com.google.gson.Gson.fromJson(Gson.java:791)
                   at com.google.gson.Gson.fromJson(Gson.java:757)
                   at com.google.gson.Gson.fromJson(Gson.java:706)
                   at com.google.gson.Gson.fromJson(Gson.java:678)
                   at com.DriverNotes.AndroidMobileClientTest.model.server.statistics.RepairCosts.<init>(RepairCosts.java:29)
                   at com.DriverNotes.AndroidMobileClientTest.model.server.statistics.RepairCostsStatistics.<init>(RepairCostsStatistics.java:20)
                   at com.DriverNotes.AndroidMobileClientTest.network.VolleyServerConnector$48$1.run(VolleyServerConnector.java:780)
                   at java.lang.Thread.run(Thread.java:856)
    

    Crash in this line:

    RepairCostsData[] repairCostsData = new Gson().fromJson(jsonObject.getJSONArray(DATA).toString(),
                                                                    RepairCostsData[].class);
    
  • Artem
    Artem over 9 years
    Thank you very match for you answer.