如何从Android中的URL获取JsonObject?

时间:2016-05-19 15:03:37

标签: android arrays json

我必须在Android中从WebService获取JSONObject,尤其是“数据”内容,然后我必须将其打印到ListView或Table中。

这是我的JSON:

crosstab

5 个答案:

答案 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或如何连接网络服务,例如您可以搜索:HttpUrlConnectionOkHttpRetrofit ...

答案 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,则可以使用getJSONObjectgetJSONArray。 根据文件:

  

返回按名称映射的值(如果它存在且是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推荐。

然后使用自定义ListviewListview

中显示此数据

以下是完整教程http://www.androidhive.info/2014/07/android-custom-listview-with-image-and-text-using-volley/

希望这能解决你的问题。