Java 如何检查jsonobject中对象的返回类型
在我的代码中,我调用了一个服务。从返回的json对象中,我对一个对象感兴趣。此对象是一个json数组。有时,根据submit中提供的信息,此json数组对象为空或不存在 在从json对象创建对象之前,如何检查json对象中的对象是否为jsonarray类型Java 如何检查jsonobject中对象的返回类型,java,json,Java,Json,在我的代码中,我调用了一个服务。从返回的json对象中,我对一个对象感兴趣。此对象是一个json数组。有时,根据submit中提供的信息,此json数组对象为空或不存在 在从json对象创建对象之前,如何检查json对象中的对象是否为jsonarray类型 JSONObject VODB = (JSONObject) JSONreturnObj.get("VODB"); if (null != VODB.get("KNDV430")){ if (VODB.getJSONArray("KND
JSONObject VODB = (JSONObject) JSONreturnObj.get("VODB");
if (null != VODB.get("KNDV430")){
if (VODB.getJSONArray("KNDV430") instanceof JSONArray){
JSONArray KNDV430 = VODB.getJSONArray("KNDV430");
customer.setCustResp((String) ((JSONObject)KNDV430.get(0)).get("responsible"));
}
}
现在,我在服务器日志中收到一条消息:
org.json.JSONException:JSONObject[“KNDV430”]不是JSONArray
这是我想要避免的
如何调整代码?替换
if (VODB.getJSONArray("KNDV430") instanceof JSONArray)
与
您可以查看方法JSONObject.getJSONArray()的源代码。在if条件下,您将从第一个getJSONArray获得该错误。因此,这应该是可行的:
JSONObject VODB = (JSONObject) JSONreturnObj.get("VODB");
if (null != VODB.get("KNDV430")){
if (VODB.get("KNDV430") instanceof JSONArray){
JSONArray KNDV430 = VODB.getJSONArray("KNDV430");
...
}
}
JSONObject VODB = (JSONObject) JSONreturnObj.get("VODB");
if (null != VODB.get("KNDV430")){
if (VODB.get("KNDV430") instanceof JSONArray){
JSONArray KNDV430 = VODB.getJSONArray("KNDV430");
...
}
}