首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gson解析Json

Gson解析Json
EN

Stack Overflow用户
提问于 2018-02-04 20:06:43
回答 1查看 455关注 0票数 0

我如何使用GSON解析这个json?

代码语言:javascript
复制
[
 [
   456239452,180279471,"fsdgdfgdfg","T",
   "M",244,0,0,"",0,82,"","[]","fgfdgdfg",10
 ],
 [
   456239451,180279471,"9wnntiu5vu9mBeDiBej4swfcztjOS4nJe",
   "R","s",253,0,0,"",0,82,"","[]","cf46","g",14
 ]
]

我的代码:

代码语言:javascript
复制
data class Data(val list: List<List<String>>)

Gson().fromJson(json, Data::class.java).let {
    it.list.forEach {
        it.forEach {
            println(it)
        }
    }
}

我的书签

com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224) at com.google.gson.Gson.fromJson(Gson.java:888) at com.google.gson.Gson.fromJson(Gson.java:853) at com.google.gson.Gson.fromJson(Gson.java:( dchistov.vkmusic.music.MusicFragment$initAudio$1.doResume(MusicFragment.kt:58) at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:54) at kotlinx.coroutines.experimental.DispatchedTask$DefaultImpls.run(Dispatched.kt:161) at kotlinx.coroutines.experimental.DispatchedContinuation.run(Dispatched.kt:25) ) com.google.gson.Gson.fromJson(Gson.java:774)在java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1412) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:285) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1152) at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1990) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1938) at java.util.concurrent.ForkJoinWorkerThread。run(ForkJoinWorkerThread.java:157)由: java.lang.IllegalStateException: Expected BEGIN_OBJECT引起,但在第1列的第2列是path $,在BEGIN_ARRAY at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:213) at com.google.gson.Gson.fromJson(Gson.java:888) at com.google。Dchistov.vkmusic.music.MusicFragment$initAudio$1.doResume(MusicFragment.kt:58)(gson.Gson.fromJson(Gson.java:853)) at com.google.gson.Gson.fromJson(Gson.java:802) at com.google.gson.Gson.fromJson(Gson.java:774).DispatchedTask$DefaultImpls.run(Dispatched.kt:161)在kotlinx.coroutines.experimental.DispatchedContinuation.run(Dispatched.kt:25)在java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1412)在java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:285)在java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1152)在java.util.concurrent.ForkJoinPool.scan((java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1938))(ForkJoinPool.java:1990)-在java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)生产的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-04 20:31:04

这似乎是您唯一能做的事情--将其解析为List<List<Any>>,然后通过索引访问元素。

为了达到这个目的,你应该做如下的事情

代码语言:javascript
复制
import java.lang.reflect.Type
import com.google.gson.reflect.TypeToken

Type listType = object: TypeToken<List<List<Any>>>(){}.type
List<List<Any>> list = Gson().fromJson(jsonArray, listType)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48612483

复制
相关文章

相似问题

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