我必须在Android中从WebService获取JSONObject,尤其是“数据”内容,然后我必须将其打印到ListView或Table中。
这是我的JSON:
crosstab
答案 0 :(得分:0)
我假设您努力在Android中获得此Json
,如果我正确的尝试:
将您的示例Json
粘贴到Json Schema 2 Pojo中,网站将生成Pojo类
使用Json
Pojo
回复转换为Gson
班级
将此行添加到您的依赖项:compile 'com.google.code.gson:gson:2.4'
将Json
结果转换为Pojo:
Gson gson = new Gson();
YourPojo yourpojo= gson.fromJson(jsonresponse, YourPojo.class);
随时随地处理结果。
如果您没有付出任何努力
转到谷歌并搜索如何在Android中处理Json或如何连接网络服务,例如您可以搜索:HttpUrlConnection
,OkHttp
,Retrofit
...
答案 1 :(得分:0)
试试这个
JSONObject jsonObject = new org.json.JSONObject(YourJsonResponse);
JSONArray jsonArray = jsonObject.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
jsonArray.getJSONObject(i).getString("codice_linea");
jsonArray.getJSONObject(i).getString("partenza");
jsonArray.getJSONObject(i).getString("ora_partenza");
......
}
答案 2 :(得分:0)
您似乎想要做的是重新创建包含在数组中的现有JSONObject。
如果您使用Android工具中的JSONObject,则可以使用getJSONObject
和getJSONArray
。
根据文件:
返回按名称映射的值(如果它存在且是JSONArray),否则抛出。
如果存在并且是JSONObject,则返回按名称映射的值,否则返回。
有关详细信息,请参阅here。
答案 3 :(得分:0)
你必须做那样的事情:
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET,
Your-url-JsonObj, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
try {
// Parsing json object response
// response will be a json object
String status = response.getString("status");
String status_message = response.getString("status_message");
JSONArray jsonArray =jsonObject.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
jsonArray.getJSONObject(i).getString("codice_linea");
jsonArray.getJSONObject(i).getString("partenza");
jsonArray.getJSONObject(i).getString("ora_partenza");
jsonArray.getJSONObject(i).getString("arrivo");
jsonArray.getJSONObject(i).getString("ora_arrivo");}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),
"Error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
hidepDialog();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_SHORT).show();
// hide the progress dialog
hidepDialog();
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq);
}
答案 4 :(得分:0)
让
response = {
"status":200,
"status_message":"Direct ways found",
"data":[{"codice_linea":"5","partenza":"Longa","ora_partenza":"17:34:00","arrivo":"Schiavon","ora_arrivo":"17:38:00"}]
}
String status = response.get("status"); // status = 200
String status_message = response.get("status_message"); // status_message = "Direct ways found"
JSONArray message = response.getJSONArray("data");
List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();
for (int i = 0; i < message.length(); i++) {
HashMap<String, String> hm = new HashMap<String, String>();
JSONObject temp = message.getJSONObject(i);
hm.put("codice_linea",temp.getString("codice_linea"));
hm.put("partenza",temp.getString("partenza"));
hm.put("ora_partenza",temp.getString("ora_partenza"));
hm.put("arrivo",temp.getString("arrivo"));
....................................
.............................
aList.add(hm);
}
最后,您的所有JSON数据都被List aList
推荐。
然后使用自定义Listview
在Listview
以下是完整教程http://www.androidhive.info/2014/07/android-custom-listview-with-image-and-text-using-volley/
希望这能解决你的问题。