JSON 応答を受け取っている場合は、Gson を使用して解析することをお勧めします。全体を 2 行で解析できる限り、強くお勧めします。適切なオブジェクトを作成するのは、次のように簡単です。
YourObject object = gson.fromJson(responseReader, YourObject.class);
または、アイテムのリストを取得している場合でも:
Type listType = new TypeToken<List<YourObject>>() {}.getType();
List<YourObject> objects = gson.fromJson(responseReader, listType);
これはあなたのニーズにぴったり合う例です
プロセスが完了すると、オブジェクト (またはオブジェクトのリスト) をアクセス可能な変数で使用できるようになります。
編集:
まず、Asynctask には次のパラメーターが必要です。
public class HttpTask extends AsyncTask<Void, Void, ArrayList<Driver>> {
doInBackground メソッドはその配列を onPostExecute に渡す必要があります。
@Override
protected ArrayList<Driver> doInBackground(Void... params) {
残りは、JSON の解析が開始されたときに取得します。
//PARSING JSON DATA
try {
JSONObject json_data;
Driver d;
jArray = new JSONArray(result);
int l = jArray.length();
if(l>0){
ArrayList<Driver> drivers = newArrayListList<Driver>();
for (int i = 0; i < l; i++) {
json_data = jArray.getJSONObject(i);
d = new Driver(json_data.optString("Driver_full_name"), json_data.optString("Drives_for"));
drivers.add(d);
Log.i("work", returnString);
Log.i("dontwork", somethingelse);
}
} catch (JSONException e1) {
Log.d("DB", "Error somewhere");
CurrentSeasonDrivers_DriverName.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(CurrentSeasonDrivers_DriversName, "Could not parse data so shut up", Toast.LENGTH_LONG).show();
}
});
}
return drivers;
}
protected void onPostExecute(ArrayList<Drivers>... drivers) {
Log.i("Google", returnString);
Log.i("Google1", somethingelse);
String firstDriverName = drivers.get(0).name;
String firstDriverDrivesFor = drivers.get(0).drivesfor;
String secondDriverName = drivers.get(1).name;
TextView drivername = (TextView) findViewById(R.id.DriverName);
drivername.setText(firstDriverName);
TextView drivesfor = (TextView) findViewById(R.id.DrivesFor);
drivesfor.setText(firstDriverDrivesFor);
}
これとドライバー用のオブジェクトで円が完成します。
public class Driver{
public String name;
public String drivesfor;
public Driver(String _name, String _drivesfor){
name = _name;
drivesfor = _drivesfor;
}
}
ここから引き継ぐことができると思います。進捗状況をお知らせください。