使用官方JSON for java库验证JSON
我的问题:如何改进这些方法来检查字符串是否为有效的json,而不必使用 我很确定,依赖异常作为方法逻辑的一部分抛出不是最佳实践。还有别的办法吗使用官方JSON for java库验证JSON,java,json,validation,Java,Json,Validation,我的问题:如何改进这些方法来检查字符串是否为有效的json,而不必使用 我很确定,依赖异常作为方法逻辑的一部分抛出不是最佳实践。还有别的办法吗 注意:请记住,我不希望使用其他库来执行此操作。这是一个大项目的一小部分,如果我能帮助的话,我不想引入另一个依赖项。如果你不想使用其他库,我认为这是最好的方法。该库中没有验证函数。如果您想使用其他东西,可以尝试使用官方JSON Java库Javadocs中的JSONValidator对象,看起来没有其他方法。由于您不希望使用任何其他库来执行此操作,也不希望
注意:请记住,我不希望使用其他库来执行此操作。这是一个大项目的一小部分,如果我能帮助的话,我不想引入另一个依赖项。如果你不想使用其他库,我认为这是最好的方法。该库中没有验证函数。如果您想使用其他东西,可以尝试使用官方JSON Java库Javadocs中的
JSONValidator
对象,看起来没有其他方法。由于您不希望使用任何其他库来执行此操作,也不希望产生异常处理所增加的开销,因此一种解决方法是检查它们的异常并自己重写类似于isValidJSON
的方法(不添加异常处理)。这样做的一个缺点是,将来不会自动对该类/方法进行修改
如果您愿意使用其他库,您可以检查哪一个库具有类似于返回布尔值的方法。根据我对javadocs标准的理解,没有具体的方法可以检查这一点。除非处理异常并使用try-catch块验证它。您可以使用任何其他LIB来验证这一点。这里有一个可以使用JavaUtils的。有一个方法名maybeJson(String),它返回布尔值并验证json 其他图书馆是如何做到这一点的?你认为是这样吗?我认为如果JSON格式不正确,大多数解析库都会抛出异常,但我不确定在sceneJSONValidator允许使用用户定义的规则/模式验证JSON之后是如何完成的。如果无效JSON不是正常情况,我认为这种方法没有问题。我只是想知道你为什么需要验证。如果您接收到字符串,您可能希望以任何方式对其进行解析,并且如果生成该字符串,则设计上应该是正确的。不要使用mayBeJSON,它的逻辑太简单,它会检查字符串是否以{或[]开头和结尾,而不检查其他内容。
public boolean isValidJSON(String possibleJson) {
return isJSONObject(possibleJson) || isJSONArray(possibleJson);
}
private boolean isJSONObject(String possibleJson) {
try {
new JSONObject(possibleJson);
return true;
} catch (JSONException ex) {
return false;
}
}
private boolean isJSONArray(String possibleJson) {
try {
new JSONArray(possibleJson);
return true;
} catch (JSONException ex) {
return false;
}
}