我遇到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?
答案 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)