null 0 java.lang.String的值无法转换为JSONObject[android]
我正在为餐厅的覆盖区域工作,如果所选餐厅不在覆盖区域内,我需要显示消息。如果在覆盖范围内,用户可以继续点餐 只要有餐厅不为空意味着如果餐厅在覆盖范围内,应用程序运行良好。当没有覆盖时,假设JSON数组为null,则上述错误将显示在catch块中 代码如下:null 0 java.lang.String的值无法转换为JSONObject[android],java,android,Java,Android,我正在为餐厅的覆盖区域工作,如果所选餐厅不在覆盖区域内,我需要显示消息。如果在覆盖范围内,用户可以继续点餐 只要有餐厅不为空意味着如果餐厅在覆盖范围内,应用程序运行良好。当没有覆盖时,假设JSON数组为null,则上述错误将显示在catch块中 代码如下: `public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statu
`public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
super.onSuccess(statusCode, headers, response);
progressActivity.showContent();
JSONObject[] restaurants_arr = null;
hasCoverage = true;
try {
if (response != null)
{
JSONArray restaurants = response.getJSONArray("restaurants");
// if restaurants deliver to that area
if (restaurants.length() > 0 && restaurants.getJSONObject(0) != null)
{
restaurants_arr = new JSONObject[restaurants.length()];
int has_coverage = 1; // assume coverage is there..
for (int j = 0; j < Utils.cart_restaurants.size(); j++)
{
RestaurantModel restaurant = Utils.cart_restaurants.get(j);
String restaurantCartID = restaurant.getId();
boolean found = false;
for (int i = 0; i < restaurants.length(); i++) {
restaurants_arr[i] = restaurants.getJSONObject(i);
String restaurantID = restaurants_arr[i].get("restaurant_id").toString();
if (restaurantCartID.equals(restaurantID))
{
found = true;
break;
}
} //end of inner for
if (found == false)
{
Toast.makeText(CheckoutActivity.this, "There is no coverage for the Selected Area ", Toast.LENGTH_SHORT).show();
hasCoverage = false;
break;
}
}
//end of outer for
} //end of if
else //if restaurants don't deliver to that area
{
hasCoverage = false;
}
} // end of if response != null
if(hasCoverage)
{
processOrder();
}
else
{
Toast.makeText(CheckoutActivity.this, "There is no coverage for the Selected Area ", Toast.LENGTH_SHORT).show();
}
} // end of try
catch (Exception ex) {
GSLogger.e(ex);
showError();
}
}
`public void onSuccess(int statusCode,Header[]headers,JSONObject响应){
super.onSuccess(状态码、头、响应);
progressActivity.showContent();
JSONObject[]餐厅\u arr=null;
hasCoverage=true;
试一试{
if(响应!=null)
{
JSONArray restaurants=response.getJSONArray(“restaurants”);
//如果餐馆送货到那个地区
if(restaurants.length()>0&&restaurants.getJSONObject(0)!=null)
{
restaurants_arr=新的JSONObject[restaurants.length()];
int具有_coverage=1;//假设存在coverage。。
对于(int j=0;j
`
当我设置调试点时,它不允许我进入if(restaurants.length()>0&&restaurants.getJSONObject(0)!=null)
{
此行。应用检查以查看是否为空
if (restaurant !=null && restaurants.length() > 0 && restaurants.getJSONObject(0) != null)
这是我唯一做的改变。现在它工作得很好。
如果(!tails.getString(0).equals(“null”)
相同错误。JSONArray为空。我希望显示toast消息,而不是进入try catch blockprinttails
或切换断点以查看其值。