Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从使用json响应的函数返回值?_Java_Android_Json - Fatal编程技术网

Java 如何从使用json响应的函数返回值?

Java 如何从使用json响应的函数返回值?,java,android,json,Java,Android,Json,我已经实现了获取餐厅区域最低订单的功能。在check_minimum_order()函数中,我从响应中得到了期望的结果。该值为静止面积最小顺序=10。现在,我想将通过JSON接收到的值传递给下一个函数,以便进行计算部分 这是检查最小订单()的代码。 现在,上面的check_minimum_order()函数将rest_area_min_order的值设为10。现在,我想在另一个函数中使用这个rest\u area\u min\u顺序。代码如下:` check_minimu

我已经实现了获取餐厅区域最低订单的功能。在check_minimum_order()函数中,我从响应中得到了期望的结果。该值为静止面积最小顺序=10。现在,我想将通过JSON接收到的值传递给下一个函数,以便进行计算部分

这是检查最小订单()的代码。

现在,上面的check_minimum_order()函数将rest_area_min_order的值设为10。现在,我想在另一个函数中使用这个rest\u area\u min\u顺序。代码如下:`

            check_minimum_order(restaurant_id);

            HashMap<String, Object> items_hash = (HashMap<String, Object>) rest_cart_hash.get(restaurant.getId());

            items_hash.put("delivery_pickup_time", time);
            items_hash.put("pickup_address_id", pickup_id);
            items_hash.put("payment_method_id", payment_id);
            items_hash.put("delivery_pickup", delivery_pickup);
            items_hash.put("selected_user_address_id", user_address_id);
            items_hash.put("rest_area_min_order", rest_area_min_order);

            restaurantList.add(items_hash);

            String rest_min_order = (String) items_hash.get("rest_min_order");
            String rest_subtotal = (String) items_hash.get("rest_subtotal");
            String rest_area_min_order = (String) items_hash.get("rest_area_min_order");

            boolean isError = isValidMinOrderAmount(rest_min_order, rest_subtotal, rest_area_min_order);`
检查最低订单(餐厅id);
HashMap items_hash=(HashMap)rest_cart_hash.get(restaurant.getId());
物品散列放置(“交货时间”、“取货时间”);
物品散列放置(“收货地址id”,收货id);
项目哈希放置(“付款方法id”,付款id);
物品散列放置(“交付/提取”,交付/提取);
项目\u散列.put(“所选用户\u地址\u id”,用户\u地址\u id);
项目散列放置(“剩余区域最小顺序”,剩余区域最小顺序);
restaurantList.add(项目\u散列);
String rest\u min\u order=(String)items\u hash.get(“rest\u min\u order”);
String rest\u subtotal=(String)items\u hash.get(“rest\u subtotal”);
字符串rest\u area\u min\u order=(字符串)items\u hash.get(“rest\u area\u min\u order”);
布尔isError=ISVALIDMINDERAMOUNT(剩余最小顺序、剩余小计、剩余面积最小顺序)`

基本上,您的
onSuccess
函数返回
void
,因此无法返回任何内容。您只需在
onSuccess
(例如
setMinimumOrder(int-pmimimumorder)
)中调用另一个函数,它将
rest\u area\u minu\u order
作为输入,您可以根据需要执行其余的操作。

据我所知,有两个选项可以实现这一点

1) 在获得rest\u area\u min\u order的值后,将要执行的代码直接放入onSuccess。或者您可以为此创建一个单独的方法

2) 使用接口传递值


我更喜欢非常简单的第一个选项。

从您的问题中,我理解您在得到web服务响应后必须进行一些计算。如果其余的计算需要在同一个类中完成,那么在得到响应后调用该方法

if (response != null)
{
  rest_area_min_order = response.getString("restaurant_area_min_order");
   doPostCalculations(rest_area_min_order);
}
如果check_minimum_order()方法在网络类中,并且您正在从另一个类(例如:activity)调用此方法,那么您可以在获得响应时使用接口与activity(或调用该方法的类)通信

下面是一个可以使用的示例接口

public interface ApiListener {
   void onSuccess(JSONObject response);
   void onFailure();
}

请看这篇文章,了解更多关于接口的信息-

主要原因是,在check\u minimum\u order方法中,您将网络发布到另一个线程。如果您想使用从网络返回的结果执行一些工作,则必须在真正获取结果后成功调用它

把代码放在
休息区\u min\u顺序下
@oussemaroua我没听清楚。你能解释一下吗?把函数代码放在onSuccess中的rest\u area\u min\u order=response.getString(“restaurant\u area\u min\u order”)@OusSemaroua整个函数变成这样检查:我刚刚更新了我的代码。你能查一下这个链接吗@杰基,我刚刚编辑了你的代码。我希望这对你有帮助。
public interface ApiListener {
   void onSuccess(JSONObject response);
   void onFailure();
}