下载一个JSON阵列从URL中的Android
我试图下载一个JSON文件以这种格式下载一个JSON阵列从URL中的Android
[ { “CRN”: “10001”, “课程”: “REG1” } , { “CRN”:“10002”, “课程”:“REG2” } ]
我知道如何使用JSONArray类一旦创建,但我不知道如何创建来自文件的JSONArray对象。如果该文件的URL位置是“www.test.com”,我将如何在启动应用程序时在后台下载它,以免干扰应用程序的启动,但不要求用户手动自己下载它。
回答:
你可能想看看这个有帮助库:Retrofit
它使抓取和解析JSON数据容易!
回答:
我认为你应该寻找Android Web服务的例子。在这里你可以找到有关信息
1.如何向服务器发送HTTP请求从服务器等。
这是我找到你的简单教程。
Android Web service for Log-in and Registration
只需经过一步一步来。
在这个例子中,我们向服务器请求登录并获得响应,然后在应用程序中继续。
这里是代码snipp。
public class JSONParser { static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
// constructor
public JSONParser() {
}
public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {
// Making HTTP request
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "n");
}
is.close();
json = sb.toString();
Log.e("JSON", json);
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}
}
回答:
一个好办法自动下载JSON文件,将您的家庭活动的onCreate
方法期间发动AsyncTask
。
JSON文件无非是特殊格式的文本文件,所以可以很容易地从HttpURLConnection
作为响应下载,然后将其视为字符串。
将JSON对象解析为Java对象的建议是Jackson JSON处理器。您可以使用该库的ObjectMapper类自动创建对象。
如果您打算自己实现服务器端,并且您还需要一个库来发送JSON对象,则可以在服务器和客户端上使用Jersey。
以上是 下载一个JSON阵列从URL中的Android 的全部内容, 来源链接: utcz.com/qa/259875.html