我有一个通用的对象数组:
static Array<Level> allLevels = new Array<Level>();
现在我想将它编码为json,如下所示:
Json json = new Json();
String levelsJsonString = json.prettyPrint(allLevels);
当我试图扭转此过程时会出现问题:
allLevels = json.fromJson(Level.class, levelsJsonString);
提出Array和Level是不兼容的类型。怎么做?
答案 0 :(得分:1)
据我所知,将泛型类传递给json fromJson()方法总是存在问题。
最简单的workarround就是将Array类型包装成:
public class Levels
{
public static Array<Level> allLevels = new Array<Level>();
}
然后就可以像
那样使用它 Levels.allLevels.add( new Level() ); //etc...
并从JSON中检索它,如
... = json.fromJson(Levels.class, jsonLevels);
将包装类类对象传递给fromJson方法。你正在做母鸡转换为JSON - 传递包装类而不仅仅是Array对象
String levelsJsonString = json.prettyPrint(Levels.allLevels);