私はこのプロジェクトの現時点での理解を深めるために、このコミュニティのすべてのユーザーに感謝したいと思います。複数のJSON文字列を解析する
もう一度あなたの助けが必要です。これまでのところ、私はここで
が私のコードである問題は、私は1つの文字列を解析することしかできています(firstNameの)である(プライバシーの問題のために取り外さ)このJSONのリンクから私のプロジェクトでの接続を確立できています:
public class JSONActivity extends Activity {
static TextView http;
HttpClient client;
JSONObject json;
final static String URL = "REMOVED FOR PRIVACY CONCERNS
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
http = (TextView) findViewById(R.id.http);
client = new DefaultHttpClient();
new Read().execute("firstName");
}
public JSONObject getpw(String password) throws ClientProtocolException,
IOException, JSONException {
StringBuilder url = new StringBuilder(URL);
url.append(password);
HttpGet get = new HttpGet(url.toString());
HttpResponse r = client.execute(get);
int status = r.getStatusLine().getStatusCode();
if (status == 200) {
HttpEntity e = r.getEntity();
String data = EntityUtils.toString(e);
JSONObject getname = new JSONObject(data);
return getname;
} else {
Toast.makeText(JSONActivity.this, "error", Toast.LENGTH_SHORT);
return null;
}
}
public class Read extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
try {
json = getpw("trustme");
return json.getString("firstName");
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
http.setText(result);
}
}
}
「firstName」ではなく複数の文字列を解析するにはどうすればよいですか。
doInBackgroundのすべてを解析して文字列の配列またはフィールドを返してもらえませんか? –
それは私も仮定したものですが、私のコードでは "return json.getString(" firstName ");というように思えます。 –
ReadクラスをAsyncTask>から派生させることができると思います。doInBackgroundは、ArrayList を返さなければなりません。必要なときに移入して返します。 –