私はチュートリアルに従ってきましたが、最終的に AsyncTask を使用して適切な程度に理解し、json を取得するために http get 要求を送信する方法を理解しました。json を取得できます。成功したと思いますが、解析に問題があります。
私が見ていたチュートリアルでは、非常に簡単な json を返して解析する非常に単純な天気 API を使用しています。
私のものは、各アイテムの情報を含む検索結果です。私のjsonは次のようになります:
json オブジェクトと情報の配列の違いを認識しています。各ビールと醸造所の情報を取得するために解析する方法について少し混乱しています。
以下の私のコード:
String jsonUrl = url + query;
Toast.makeText(this, jsonUrl, Toast.LENGTH_SHORT).show();
//todo: get json
new ReadJSONResult().execute(jsonUrl);
return false;
}
private class ReadJSONResult extends AsyncTask
<String, Void, String> {
protected String doInBackground(String... urls) {
return readJSONFeed(urls[0]);
}
protected void onPostExecute(String result) {
try {
///code below is what I kow I need to reconstruct and change to parse
JSONObject jsonObject = new JSONObject(result);
JSONObject weatherObservationItems =
new JSONObject(jsonObject.getString("weatherObservation"));
Toast.makeText(getBaseContext(),
weatherObservationItems.getString("clouds") +
" - " + weatherObservationItems.getString("stationName"),
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Log.d("ReadWeatherJSONFeedTask", e.getLocalizedMessage());
}
}
}