Java 如何知道JSON字符串是否可以无错误地转换为JSONObject?

Java 如何知道JSON字符串是否可以无错误地转换为JSONObject?,java,android,json,Java,Android,Json,如何处理此问题,使其不会出现以下错误 JSONObject dataObject = new JSONObject(data); String currentDynamicKey = "7"; JSONObject currentDynamicValue = dataObject.getJSONObject(currentDynamicKey); 错误: org.json.JSONException: Value at 7 of type java.lang.String cannot be

如何处理此问题,使其不会出现以下错误

JSONObject dataObject = new JSONObject(data);
String currentDynamicKey = "7";
JSONObject currentDynamicValue = dataObject.getJSONObject(currentDynamicKey);
错误:

org.json.JSONException: Value  at 7 of type java.lang.String cannot be converted to JSONObject
json数据:

{"2":{"id":2,"title":"Battleship game","enabled":"1","connection_alert":"1","prot":"2","port":"6410","analysis":"1","send_data":"Analysis Data box","regex":"\/HTTP\/1.1 404 Not Found\/","send_on":false,"analysis_alert_title":"404","analysis_alert_body":"not found","analysis_alert_body_false":"found"},"7":""}

正如你在结尾看到的,7是空的。如何检查它是否为空?

只需使用
optJSONObject(字符串名称)
而不是
getJSONObject(字符串名称)

返回按名称映射的值(如果该值存在并且是JSONObject)。否则返回null。


然后检查返回值。

您使用的是哪个json解析器?有几十个,它们都有一个JSONObject或JSONObject类。这是一个Android应用程序