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

时间:2017-12-14 23:36:28

标签: android json android-studio gson

我遇到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;

然而在Kotlin,当我这样尝试时:

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

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

  

无法访问'&lt; init&gt; ':'TypeToken'

中是public / package /

并且还强调错误{}说:

  

类型不匹配。   需要:   类型!   实测:   ()→单位

那么是否有解决方案使其适用于Kotlin?

2 个答案:

答案 0 :(得分:9)

您可以尝试这样做:

val objectList = gson.fromJson(json, Array<SomeObject>::class.java).asList()

答案 1 :(得分:2)

试试这个,它使用object而不是Type ..

measurements : List<SomeOjbect> = gson.fromJson(text, object : TypeToken<List<SomeOjbect>>() {}.type)