使用Json保存和加载

使用Json保存和加载,json,libgdx,Json,Libgdx,到目前为止,我一直使用serializable来保存和加载数据,但现在我已经切换到JSON。我一开始就有一个问题。Json不会为我保存任何类。我试图保存独立变量.class。这个类包含各种静态数据-玩家类型字符串、奖金类型字符串、分数。然后我在类中创建了私有类,然后在方法中创建了类,但什么都没有。输出odSystem.out.println(json)总是{} 例如,这是我最后一次尝试让事情顺利进行: public static void saveAVD() { Variables v

到目前为止,我一直使用serializable来保存和加载数据,但现在我已经切换到JSON。我一开始就有一个问题。Json不会为我保存任何类。我试图保存独立变量.class。这个类包含各种静态数据-玩家类型字符串、奖金类型字符串、分数。然后我在类中创建了私有类,然后在方法中创建了类,但什么都没有。输出od
System.out.println(json)
总是
{}

例如,这是我最后一次尝试让事情顺利进行:

public static void saveAVD() {
    Variables v = new Variables();
    String json = new Json().toJson(v);
    System.out.println(json);
    file.writeString(json.prettyPrint(json), false);
}
注意:文件变量位于本地bin文件夹中。在该文件中也只有两个空手镯
({})

有什么建议吗?

(感谢noone,他在评论中回答了这个问题)


默认情况下,JSON不会序列化静态字段。获得所需行为的最快方法可能是将Variables类转换为。

使用
Gson
库,继续生活。太棒了。你能展示一些变量的内容吗?听起来属性是静态的?JSON可能只保存实例变量,默认情况下不保存静态变量。您需要实现自己的
序列化程序
,它还将静态字段写入JSON。variables.class中的所有变量都是静态的。现在我成功地将所有变量作为对象添加到Arraylist中。虽然还需要一些测试,但似乎还可以。谢谢你的快速P.T.和noone。我将在完成Arraylist to JSON taskThy以获得答案时,检查如何解决这个问题。我找到了一种更简单的方法,我把所有的静态数据放在数组中,然后我保存了它们。它正在工作,而且相对简单。但我会检查singleton类在设计方面,保留需要保存的东西的数组可能更好。单身汉是最直接的转换。