班级:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Read().execute("masjids");
}
public JSONObject retrieveInfo(String radius) throws ClientProtocolException,
IOException, JSONException {
StringBuilder url = new StringBuilder(
"http://iqamah.org/api/index.php?lat=43&long=-79&radius=");
url.append(radius);
HttpClient httpclient = new DefaultHttpClient();
HttpGet get = new HttpGet(url.toString());
HttpResponse r = httpclient.execute(get);
HttpEntity e = r.getEntity();
String data = EntityUtils.toString(e);
JSONObject timeline = new JSONObject(data);
return timeline.getJSONObject("1");
}
private class Read extends AsyncTask<String, Integer, String> {
ProgressDialog pd = null;
@Override
protected void onPreExecute() {
super.onPreExecute();
pd = new ProgressDialog(MainActivity.this);
pd.setTitle("Loading...");
pd.setMessage("Please wait...");
pd.setCancelable(false);
pd.show();
}
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
try {
JSONObject json = retrieveInfo("200");
return json.getString(arg0[0]);
} 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 status) {
super.onPostExecute(status);
pd.dismiss();
TextView day = (TextView) findViewById(R.id.displayDay);
day.setText("Masjid: " + status);
}
}
}
JSON:
{
"status": "ok",
"masjids": [
{
"id": "44|Madina Masjid|1200 Danforth Ave, Toronto|49.99"
},
{
"id": "39|Darul Taqwa|1 Thorncliffe Park Drive, Toronto|51.59"
},
{
"id": "43|Darul Khair|25 St Dennis, Toronto|52.12"
}
]
}
我正在尝试访问masjids->id[0]
数组,如何使用上面的代码执行此操作?
答案 0 :(得分:0)
String data = "{ "status": "ok", "masjids": [ { "id": "44|Madina Masjid|1200 Danforth Ave, Toronto|49.99" }, { "id": "39|Darul Taqwa|1 Thorncliffe Park Drive, Toronto|51.59" }, { "id": "43|Darul Khair|25 St Dennis, Toronto|52.12" } ] }";
JSONObject jObj = new JSONObject(data);
JSONArray jArray_masjids = jObj.getJSONArray("masjids");
String address = jArray_masjids.getJSONObject(0).getString("id");
答案 1 :(得分:0)
JSONObject timeline = new JSONObject(data);
JasonArry jarry=timeline.getJsonArray("masjids");
for (int i = 0; i < jarry.length(); i++) {
JSONObject explrObject = jsonArray.getJSONObject(i);
String newStr = explrObject.getString("id");
}
答案 2 :(得分:0)
试试这个,
String data = "{ "status": "ok", "masjids": [ { "id": "44|Madina Masjid|1200 Danforth Ave, Toronto|49.99" }, { "id": "39|Darul Taqwa|1 Thorncliffe Park Drive, Toronto|51.59" }, { "id": "43|Darul Khair|25 St Dennis, Toronto|52.12" } ] }";
JSONObject jObj = new JSONObject(data);
JSONArray jArray_masjids = jObj.getJSONArray("masjids");
for(int i = 0 ;i<jArray_masjids;i++){
String address = jsonArray.getJSONObject(i).getString("id");
}