如何保护libgdx函数免受json对输入错误的影响?

时间:2016-12-31 22:38:05

标签: java json libgdx

我在我的应用程序中尝试加载可以由用户创建的级别,并且我希望保护我的应用程序免受崩溃,因为它将获得错误输入的文件。我该怎么办?

这是我目前的代码:

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

1 个答案:

答案 0 :(得分:0)

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

首先,您可以使用try-catch语句围绕SELECT convert(cast(convert(content using latin1) as binary) using utf8) AS content调用@Elliott建议。如果您发现异常,请礼貌地告诉玩家他们创建的关卡有问题,并询问他们是否要再次尝试加载(可能是在他们修复之后)或者回去。

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