我正在开发大学在线成绩检查 android 应用程序,以便当学生在文本框中输入他/她的注册号时,应该显示结果。我有大学网址,但我不知道如何以 json 格式提取该网址并将其调用到 android 请任何人帮助我如何从 android 中的 url 中提取数据。
最佳答案
调用 JSONLoadTask().execute(yourUrl);
public class JSONLoadTask extends AsyncTask<String, Void, JSONObject>{
@Override
protected void onPreExecute() {
super.onPreExecute();
//your code
}
@Override
protected JSONObject doInBackground(String... params) {
JSONParser jParser = new JSONParser();
JSONObject object = jParser.getJsonObject(params[0]);
return object;
}
@Override
protected void onPostExecute(JSONObject result) {
super.onPostExecute(result);
//get the values from result here
}
}
}
参加下面的类(class)
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
public JSONParser() {
}
/**
* This method is used to parse the Url by taking the url as parameter
*
* @param url
* @return
*/
public Object getJsonObject(String url) {
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setStaleCheckingEnabled(httpParams, false);
HttpConnectionParams.setConnectionTimeout(httpParams, 15000);
HttpConnectionParams.setSoTimeout(httpParams, 15000);
httpGet.setParams(httpParams);
HttpResponse httpResponse = httpClient.execute(httpGet);
StatusLine statusLine = httpResponse.getStatusLine();
if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
HttpEntity httpEntity = httpResponse.getEntity();
json = EntityUtils.toString(httpEntity);
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
if (json.startsWith("[")) {
// We have a JSONArray
try {
jObj = new JSONObject();
jObj.put("data", new JSONArray(json));
} catch (JSONException e) {
Log.d("JSON Parser",
"Error parsing JSONArray " + e.toString());
}
return jObj;
}
// return JSON String
return jObj;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
} catch (ClientProtocolException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
return null;
}
}
关于android - 如何从 Android 中的网站 url 获取 Json 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27720777/