2017-06-18 15 views
0

私は現在Yelp Fusion APIを使用してビジネス情報を取得しています。これまでのところ私はPOST要求に対する応答を得ることができましたが、JSON全体の出力しか得られませんでした。結果をフィルタリングする方法はありますか?したがって、特定のキーとJSON出力の値を取得するだけです。私のコードは、これまでに以下に示します。POST応答の処理

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"); 
    } 

おかげ

答えて

0

ロールあなた自身を!レスポンスの詳細レベルを変更することはできません(ただし、APIにこの機能がある場合を除きます)。もちろん、レスポンスから不要なものを除外することはできます。

説明すると、私はthisという応答を得ました。

{ 
    "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" 
    } 
    ] 
} 

私たちが自分の名前にデルフィナを持つビジネスに興味があるのなら、次のことができます。

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); 
    } 
} 

(予想通り)が出力

{"name":"Delfina","id":"YqvoyaNvtoC8N5dA8pD2JA"} 
{"name":"Pizzeria Delfina","id":"bai6umLcCNy9cXql0Js2RQ"} 

私は非常にシンプルなものですが、あなたが始めるのに十分である、ここでorg.jsonパッケージを利用しました!