我如何使用GSON解析这个json?
[
[
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
]
]我的代码:
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)生产的
发布于 2018-02-04 20:31:04
这似乎是您唯一能做的事情--将其解析为List<List<Any>>,然后通过索引访问元素。
为了达到这个目的,你应该做如下的事情
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)https://stackoverflow.com/questions/48612483
复制相似问题