【问题标题】:JSON parse and encoding with generic types使用泛型类型进行 JSON 解析和编码
【发布时间】:2015-09-27 22:22:07
【问题描述】:

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

    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 是不兼容的类型。如何做到这一点?

【问题讨论】:

    标签: arrays json generics libgdx


    【解决方案1】:

    据我所知,将 generic type class 传递给 json fromJson() 方法总是存在问题。

    最简单的解决方法就是将 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);
    

    【讨论】:

    • 是的,这就是我最终所做的。谢谢。
    猜你喜欢
    • 2018-07-02
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    相关资源
    最近更新 更多