JSON使用泛型类型进行解析和编码

时间:2015-09-27 22:22:07

标签: arrays json generics libgdx

我有一个通用的对象数组:

    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是不兼容的类型。怎么做?

1 个答案:

答案 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);