【问题标题】:Why json doesn´t work?为什么json不起作用?
【发布时间】:2015-01-17 11:44:25
【问题描述】:

当我尝试运行我的项目时,我的游戏因以下错误而崩溃:

Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.badlogic.gdx.utils.Json.writeValue(Json.java:376)
at com.mygdx.game.MyGdxGame.write(MyGdxGame.java:30)
at com.mygdx.game.MyGdxGame.create(MyGdxGame.java:25)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)

代码是:

private Json json;
private int x = 1;

@Override
public void create() {

    json = new Json();
    write(json);
}

@Override
public void write(Json json) {
    json.writeValue("X", x);

}

有什么问题?我找不到解决办法

【问题讨论】:

  • 如果不进行调试或跟踪,您将无法解决此问题。
  • 你需要学习如何调试。这是所有程序员必须具备的技能,才能完成任何事情。调试 NullPointerException 是最简单的调试任务之一,也是开始学习的好地方。

标签: java json libgdx


【解决方案1】:

查看source code,看来问题是您还没有设置作家。目前尚不清楚您期望 writeValue 在您没有设置编写器时会做什么,但您要么需要更改调用的方法(例如,改为调用 prettyPrint),要么设置编写器首先。

例如:

private Json json;
private StringWriter writer;

writer = new StringWriter();
json = new Json();
json.setWriter(writer);
write(json);

然后您可以使用writer.toString() 稍后获取 JSON。

【讨论】:

  • 谢谢,但我怎样才能将这些信息保存到 json 文件中?
  • @ElPunto:改用 OutputStreamWriter,包装 FileOutputStream?
  • 你能写一个例子吗?
  • @Elpuntorojo:不在这个问题上,不 - 这与你所问的无关。 Stack Overflow 适用于非常具体的问题 - 而不是因为作者基本上希望通过一系列步骤而演变的问题。我建议您阅读github.com/libgdx/libgdx/wiki/Reading-&-writing-JSON,如果您仍然感到困惑,请写一个 new 问题,详细说明您尝试过的内容和出错的地方等 - 以及您的上下文重新尝试实现。 (您目前根本没有告诉我们。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-24
  • 2020-05-17
  • 2019-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多