我一直在研究如何从服务器查询JSON数据并解析它以便在我的应用程序中使用。但是,我发现了许多不同的方法来做同样的事情。我意识到有不同的JSON解析器,所以我们假设我坚持使用标准解析器。我的主要问题与服务器请求有关。这是我目前我MapActivityAndroid:处理JSON数据的最佳做法
private class DownloadJSON extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Create a Progress Dialog
mProgressDialog = new ProgressDialog(MapActivity.this);
mProgressDialog.setTitle("Downloading Data");
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
// Create an array
arraylist = new ArrayList<HashMap<String, String>>();
try {
// Retrieve JSON Objects from the given URL address
jsonarray = JSONFunctions.getJSONfromURL("myurl");
for (int i = 0; i < jsonarray.length(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
JSONObject obj = jsonarray.getJSONObject(i);
// Retrieve JSON Objects
map.put("id", String.valueOf(i));
map.put("name", obj.getString("name"));
// Set the JSON Objects into the array
arraylist.add(map);
}
} catch (JSONException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void args) {
// Do something with data
mProgressDialog.dismiss();
}
}
代码如果我JSON数据的结构看起来怪异,那是因为它是存储在一个未命名的数组,所以我不必须先创建一个对象。无论如何......我基本上是基于this tutorial。但是,他们有更多的代码。这一切是否真的有必要?我不这么认为。我搜索了更多,发现其他使用了一半代码的例子,基本上做了同样的事情。因此,作为一名开始的Android程序员,我的问题是处理JSON数据的最佳做法是什么?谢谢! JSON文件的
例子:
[
{
"name": "test",
"lat": "42.01108",
"long": "93.679196"
},
{
"name": "test",
"lat": "42.01108",
"long": "93.679196"
}
]
请出示从服务器返回 – 2015-04-02 03:57:45
JSON字符串我加了一个,但我不知道这是多么有用。我提供的代码正确解析并返回这些数据。我只是不确定它是否是最优化/有效的方式,因为我对Android开发比较陌生。只是寻找一些反馈! – leerob 2015-04-02 04:01:35
我相信Gson最好是在Json上操作,并且结合凌空的事情变得相当容易 – 2015-04-02 04:04:52