首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java.lang.NumberFormatException: android中的double:"5b80393f7fca491488980fe1“无效

java.lang.NumberFormatException: android中的double:"5b80393f7fca491488980fe1“无效
EN

Stack Overflow用户
提问于 2018-09-19 02:56:55
回答 1查看 328关注 0票数 2

我有个Kotlin课程

代码语言:javascript
复制
class CategoryJsonData(val category: List<Category>) 
data class Category(val _id:Double, val category_name:String, val sub_category_name:String, val price:Int)

在这一行,我得到一个错误

代码语言:javascript
复制
val jsonData = gson.fromJson(body, CategoryJsonData::class.java)

当我解析这个JSON时

代码语言:javascript
复制
{ "_id": "5b80393f7fca491488980fe1", "category_name": "electrical", "sub_category_name": "switches meters and fuses", "price": 300 }

java.lang.NumberFormatException:无效的双精度:"5b80393f7fca491488980fe1“

5b80393f7fca491488980fe1(_id)是由mongoose使用nodejs生成的。尝试访问API时显示此错误。

代码语言:javascript
复制
09-18 23:26:47.026 18264-18542/com.hiretheskill.skill E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
    Process: com.hiretheskill.skill, PID: 18264
    java.lang.NumberFormatException: Invalid double: "5b80393f7fca491488980fe1"
        at java.lang.StringToReal.invalidReal(StringToReal.java:63)
        at java.lang.StringToReal.initialParse(StringToReal.java:164)
        at java.lang.StringToReal.parseDouble(StringToReal.java:282)
        at java.lang.Double.parseDouble(Double.java:301)
        at com.google.gson.stream.JsonReader.nextDouble(JsonReader.java:909)
        at com.google.gson.Gson$2.read(Gson.java:284)
        at com.google.gson.Gson$2.read(Gson.java:278)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
        at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
        at com.google.gson.Gson.fromJson(Gson.java:887)
        at com.google.gson.Gson.fromJson(Gson.java:852)
        at com.google.gson.Gson.fromJson(Gson.java:801)
        at com.google.gson.Gson.fromJson(Gson.java:773)
        at com.hiretheskill.skill.SubCategories$fetchJsonData$client$1.onResponse(SubCategories.kt:45)
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:153)
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:818)
EN

回答 1

Stack Overflow用户

发布于 2018-09-19 03:29:23

在您的JSON中,这是一个字符串"_id": "5b80393f7fca491488980fe1"

在您的类中,您将其定义为双val _id:Double

您需要将其更改为字符串,因为JSON值中包含非数字字符

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52392982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档