尝试调用虚拟方法';java.lang.Object java.util.HashMap.put(java.lang.Object,java.lang.Object)和#x27;关于空对象引用
当json响应值为空时,我得到了上述错误尝试调用虚拟方法';java.lang.Object java.util.HashMap.put(java.lang.Object,java.lang.Object)和#x27;关于空对象引用,java,android,nullpointerexception,Java,Android,Nullpointerexception,当json响应值为空时,我得到了上述错误 { "restaurant_area_min_order":null, "restaurant_id":null }. 上面的错误出现在try-catch块中。当餐厅\区域\最小\订单和餐厅\ id中存在值时,该函数工作正常,没有错误。如何检查响应数据是否为空,并在没有任何错误的情况下继续该函数 这是我的密码 private void getAreaMinOrders() { for(int i = 0; i < Utils.cart_r
{
"restaurant_area_min_order":null,
"restaurant_id":null
}.
上面的错误出现在try-catch块中。当餐厅\区域\最小\订单和餐厅\ id中存在值时,该函数工作正常,没有错误。如何检查响应数据是否为空,并在没有任何错误的情况下继续该函数
这是我的密码
private void getAreaMinOrders()
{
for(int i = 0; i < Utils.cart_restaurants.size(); i++)
{
RestaurantModel restaurant = Utils.cart_restaurants.get(i);
String restaurant_id = restaurant.getId();
String url = LinksConstants.BASE_URL + LinksConstants.CHECK_MINIMUM_ORDER;
RequestParams params = new RequestParams();
params.put("restaurant_id", restaurant_id);
params.put("area_id", city_id);
NetworkRestClient.post(url, params, new JsonHttpResponseHandler()
{
@Override
public void onStart()
{
super.onStart();
progressActivity.showLoading();
}
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response)
{
super.onSuccess(statusCode, headers, response);
try
{
if (response != null)
{
String restaurant_id = response.getString("restaurant_id");
String rest_area_min_order = null;
if(rest_area_min_order != null)
{
rest_area_min_order = response.getString("restaurant_area_min_order");
}
HashMap<String, Object> items_hash = (HashMap<String, Object>) rest_cart_hash.get(restaurant_id);
items_hash.put("rest_area_min_order", rest_area_min_order);
}
progressActivity.showContent();
}
catch (Exception ex)
{
GSLogger.e(ex);
showError();
}
}
@Override
public void onFailure(int statusCode, Header[] headers, String errorResponse, Throwable throwable)
{
super.onFailure(statusCode, headers, errorResponse, throwable);
showError();
if (AppConstants.DEBUG_MODE)
showToast(errorResponse);
}
}); //end of NetworkRestClient.post
} //end of for
}
private void getAreaMinOrders()
{
对于(int i=0;i
您可以使用JSONObject.isNull()
方法检查null
response.isNull("your_key"); // returns true if the value of that key is null
但是从您发布的详细信息来看,代码中的HashMap items\u hash
似乎为空
添加空检查:
if(restaurant_id != null) {
HashMap<String, Object> items_hash = (HashMap<String, Object>) rest_cart_hash.get(restaurant_id);
items_hash.put("rest_area_min_order", rest_area_min_order);
}
if(餐厅id!=null){
HashMap items\u hash=(HashMap)rest\u cart\u hash.get(餐厅id);
项目散列放置(“剩余区域最小顺序”,剩余区域最小顺序);
}
您可以更改代码吗?可以。在我的代码中,items\u hash为空。因为我从JSONI检索到的id为null,如果值为null,那么我希望按原样传递。我不想让它去捕捉障碍我已经更新了我的答案让我试试这个无论我从json得到什么值,我将它附加到rest\u area\u min\u order,该值将在另一个函数中使用以进行检查。如果restaurant\u id
为空,你认为items\u hash
的值是多少?如果为null,那么您认为items\u hash.put()
可以做什么?如果你认为它会给你的头衔带来例外,你是对的旁注:如果(rest\u area\u min\u order!=null)紧跟在字符串rest\u area\u min\u order=null之后,那么的作用是什么?如果
语句是真的,那什么时候才是真的?