如何从android中的URL解析json

时间:2019-03-15 06:27:41

标签: java android json

我陷入了这个问题,如何在android studio中从URL解析json 下面是我的json结构尝试过的所有其他方法都不适合我

url:http://api.ipstack.com/109.94.137.130?access_key=e9e5de2c993dc6652ed45c3f9dc53daf

{
   "ip":"109.94.137.130",
   "type":"ipv4",
   "continent_code":"EU",
   "continent_name":"Europe",
   "country_code":"GB",
   "country_name":"United Kingdom",
   "region_code":"ENG",
   "region_name":"England",
   "city":"Bedford",
   "zip":"MK42",
   "latitude":52.1073,
   "longitude":-0.4649,
   "location":{
      "geoname_id":2656046,
      "capital":"London",
      "languages":[
         {
            "code":"en",
            "name":"English",
            "native":"English"
         }
      ],
      "country_flag":"http:\/\/assets.ipstack.com\/flags\/gb.svg",
      "country_flag_emoji":"\ud83c\uddec\ud83c\udde7",
      "country_flag_emoji_unicode":"U+1F1EC U+1F1E7",
      "calling_code":"44",
      "is_eu":true
   }
}

有关此问题,请提供帮助。预先感谢。

2 个答案:

答案 0 :(得分:1)

使用翻新或截击从API获取数据。 Sample Retrofit Implementation

使用GSON库来解析gson。而且,实施起来很容易。

解析代码段为:

ModelClass sInfo_parse = new Gson().fromJson(getURLJson, ModelClass.class);

答案 1 :(得分:-2)

here的gradle文件中添加截击。现在,在您的Java文件中添加以下行。

RequestQueue queue = Volley.newRequestQueue(ChangePasswordActivity.this);

现在像下面的方法一样,在onCreate方法中调用StringRequest构造函数。

        String Url = your url

                    Log.d(TAG, Url);

                    StringRequest stringRequest = new StringRequest(Request.Method.GET, Url,
                            new Response.Listener<String>() {
                                @Override
                                public void onResponse(String response) {
                                    Log.d("response", response);

// here you can find your all json value.
                                }
                            },
                            new Response.ErrorListener() {
                                @Override
                                public void onErrorResponse(VolleyError error) {
                                    error.printStackTrace();
                                }
                            }
                    );

                    queue.add(stringRequest);
                }