【问题标题】:How to protect libgdx function fromJson against bad input?如何保护 libgdx 函数 fromJson 免受错误输入?
【发布时间】:2017-05-15 16:40:24
【问题描述】:

我正在我的应用程序中尝试加载可由用户创建的级别,并且我想保护我的应用程序在收到输入错误的文件时不会崩溃。我该怎么做?

这是我当前的代码:

Json json = new Json();
json.setIgnoreUnknownFields(true);
JsonWorldValueCache jsonWrldCache = json.fromJson(JsonWorldValueCache.class, jsonWorld);

【问题讨论】:

  • 添加try-catch?请通过发布足够的代码来重现问题,以阐明保护我的应用程序在收到错误输入的文件时不会崩溃 的意思。
  • 谢谢 try&catch 解决了我的问题。

标签: java json libgdx


【解决方案1】:

您可以从两个方面解决问题:

首先,您可以按照@Elliott 的建议在Json#fromJson() 调用中加上try-catch 语句。如果您发现异常,请礼貌地告诉玩家他们创建的关卡有问题,并询问他们是否想再次尝试加载(大概在他们修复它之后)或返回。

其次,您可以为用户提供关卡编辑器,这样他们就不必直接修改 JSON 文件。虽然这不会消除失败的可能性(用户非常擅长破坏事物),但它会消除大部分问题,因为您的编辑器可以确保在关卡文件中遵循正确的结构和值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 2010-12-14
    • 1970-01-01
    • 2014-04-01
    • 2018-12-26
    • 1970-01-01
    • 2013-03-12
    • 2015-11-05
    相关资源
    最近更新 更多