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

标签 android json gson

我运行此代码并崩溃。你能帮帮我吗?

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;

...

为这个类调用Gson().fromJson()

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

**来自服务器的 JSON **

[{"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}]

日志

 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)

此行崩溃:

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

最佳答案

"job_price":"0.00"不是 double 而是字符串,

改为

"job_price": 0.00

关于android - Gson .JsonSyntaxException - java.lang.NumberFormatException : Invalid double: "",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25140170/

相关文章:

android - Firebase Phone Authentication - 验证短信文本的内部化

android - 由于 'java.lang.IllegalAccessError',检测运行失败。 Gradle + Espresso

java - 使用 httpurlconnection 在 java 中执行终端命令并以 json 格式获取响应

Java反射读取内部类值

java - GSON & Volley => 预期为 BEGIN_ARRAY 但在第 1 行第 2 列路径 $ 处为 BEGIN_OBJECT

android - 使用谷歌语音识别时忽略背景音乐

android - Gradle 找不到不存在的依赖项 - Android 工作室

Java自反序列化

php - 从 JSON 填充选择列表

php - 在 android 中访问服务器文件的本地主机路径是什么?