首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >处理POST响应

处理POST响应
EN

Stack Overflow用户
提问于 2017-06-19 06:30:29
回答 1查看 101关注 0票数 0

我目前正在使用Yelp Fusion API来检索业务信息。到目前为止,我已经能够获得对POST请求的响应,但只能获得完整的JSON输出。有什么方法可以让我过滤我的结果吗?所以只需要在JSON输出中检索一个特定的键和值。到目前为止,我的代码如下:

代码语言:javascript
运行
复制
try {
        String req = "https://api.yelp.com/v3/businesses/search?";
        req += "term=" + term + "&location=" + location;
        if(category != null) {
            req += "&category=" + category;
        }
        URL url = new URL(req);
        HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
        con.setRequestMethod("GET");
        con.setRequestProperty("Authorization", "Bearer " + ACCESSTOKEN);

        BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
        StringBuffer buffer = new StringBuffer();

        String inputLine = reader.readLine();
        buffer.append(inputLine);
        System.out.println(buffer.toString());


        reader.close();

    } catch (Exception e) {
        System.out.println("Error Connecting");
    }

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-06-19 07:39:57

滚你自己的!您不能更改响应提供给您的详细程度(除非API具有此功能),但您当然可以从响应中过滤出不需要的内容。

为了说明这一点,我以this响应为例。

代码语言:javascript
运行
复制
{
  "terms": [
    {
      "text": "Delivery"
    }
  ],
  "businesses": [
    {
      "id": "YqvoyaNvtoC8N5dA8pD2JA",
      "name": "Delfina"
    },
    {
      "id": "vu6PlPyKptsT6oEq50qOzA",
      "name": "Delarosa"
    },
    {
      "id": "bai6umLcCNy9cXql0Js2RQ",
      "name": "Pizzeria Delfina"
    }
  ],
  "categories": [
    {
      "alias": "delis",
      "title": "Delis"
    },
    {
      "alias": "fooddeliveryservices",
      "title": "Food Delivery Services"
    },
    {
      "alias": "couriers",
      "title": "Couriers & Delivery Services"
    }
  ]
}

如果我们只对名称中包含Delfina的企业感兴趣,我们可以执行以下操作。

代码语言:javascript
运行
复制
JSONObject jsonResponse = new JSONObject(response);
JSONArray businessesArray = jsonResponse.getJSONArray("businesses");
for (int i = 0; i < businessesArray.length(); i++) {
    JSONObject businessObject = businessesArray.getJSONObject(i);
    if (businessObject.get("name").toString().contains("Delfina")) {
        //Do something with this object
        System.out.println(businessObject);
    }
}

哪个输出(与预期一致)

代码语言:javascript
运行
复制
{"name":"Delfina","id":"YqvoyaNvtoC8N5dA8pD2JA"}
{"name":"Pizzeria Delfina","id":"bai6umLcCNy9cXql0Js2RQ"}

我在这里使用了org.json包,这是一个非常简单的包,但足以让您入门!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44620144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档