gson 未解析的引用:类型标记

busg9geu  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(190)

我第一次使用JSON时遇到了一个问题。当我尝试使用和导入TypeToken时,我收到错误消息“Unresolved reference:类型标记”。
我的代码

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

import com.google.gson.Gson
import java.lang.reflect.Type
import com.google.gson.reflect.TypeToken

class QuizActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_quiz)

        val gson = Gson()

        val json = "quiz.json"
        val myType: Type = object : TypeToken<List<QuizType>>(){}.type()
        val quiz: List<QuizType> = gson.fromJson(json, myType)

    }
}

有什么不对吗?

编辑

我会用这个

val myType = typeOf<List<QuizType>>().javaType

取而代之

val myType: Type = object : TypeToken<List<QuizType>>(){}.type()

而且很有效!(或者我会试试莫希)

t3psigkw

t3psigkw1#

TypeToken的声明有问题。前面缺少object :。因为它应该是匿名内部类。
它应该是这样的:

val gson = Gson()
val json = "quiz.json"
val myType: Type = object : TypeToken<List<QuizType>>() {}.type
val quiz: List<QuizType> = gson.fromJson(json, myType)

相关问题