Kotlin使用Gson将json字符串转换为ojbect列表

K.O*_*.Os 7 android json gson android-studio

我有一个问题,Kotlin编写从json String转换为对象List的代码.

Java中的Normaly就像这样:

  Gson gson = new Gson();
    Type type = new TypeToken<List<SomeOjbect>>() {}.getType();
    List<SomeOjbect> measurements = gson.fromJson(json, type);
    return measurements;
Run Code Online (Sandbox Code Playgroud)

但是在Kotlin,当我尝试这样的时候:

   val gson = Gson()
    val type: Type = TypeToken<List<SomeOjbect>>{}.type
    val measurements : List<SomeOjbect> = gson.fromJson(text, type)
    return measurements 
Run Code Online (Sandbox Code Playgroud)

IDE Android Studio强调了TypeToken所说的错误:

无法访问'<init>':它是public/package/in'TypeToken'

并且还强调错误{}说:

类型不匹配.必填:输入!发现:()→单位

那么有没有一个解决方案让它适用于Kotlin?

Cha*_*irk 14

您可以尝试这样做:

val objectList = gson.fromJson(json, Array<SomeObject>::class.java).asList()
Run Code Online (Sandbox Code Playgroud)


Pur*_*ham 5

试试这个,它使用对象而不是类型..

measurements : List<SomeOjbect> = gson.fromJson(text, object : TypeToken<List<SomeOjbect>>() {}.type) 
Run Code Online (Sandbox Code Playgroud)