Android之解析Android Map地图返回的Json数据

先上一下需要解析的Json数据:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "荔湾区",
               "short_name" : "荔湾区",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "广州",
               "short_name" : "广州",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "广东省",
               "short_name" : "广东省",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "中国",
               "short_name" : "CN",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "中国广东省广州荔湾区",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 23.15961330,
                  "lng" : 113.2768870
               },
               "southwest" : {
                  "lat" : 23.04186250,
                  "lng" : 113.17712080
               }
            },
            "location" : {
               "lat" : 23.1259510,
               "lng" : 113.2442380
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 23.16699020,
                  "lng" : 113.30826770
               },
               "southwest" : {
                  "lat" : 23.08489920,
                  "lng" : 113.18020830
               }
            }
         },
         "types" : [ "sublocality", "political" ]
      }
   ],
   "status" : "OK"

 

上关键代码: 这只是解析了部分,但是其他部分都一样,不要忘记导入gson-2.1.jar包到程序中

public  void parserJson(String str){
         try {
            JSONObject jsonObject =  new JSONObject(str);
             // 解析了最简单的status
            
// String s = jsonObject.getString("status");
            JSONArray jsonArray = jsonObject.getJSONArray("results"); 
             for( int i=0;i<jsonArray.length();i++){
                 // 输入了formatted_address
                s = jsonArray.getJSONObject(i).getString("formatted_address");
                System.out.println("formatted_address=======>"+s);
                 // 输出了location里面的lat和lng两个值
                 double s1 = jsonArray.getJSONObject(i).getJSONObject("geometry").getJSONObject("location").getDouble("lat");
                 double s2 = jsonArray.getJSONObject(i).getJSONObject("geometry").getJSONObject("location").getDouble("lng");
                System.out.println("lat:"+s1 + "-----" + "lng:"+s2);
                
                JSONArray jsonArray2 = jsonArray.getJSONObject(i).getJSONArray("address_components");
                 for( int j=0;j<jsonArray2.length();j++){
                     // 输出每一个long_name
                    s = jsonArray2.getJSONObject(j).getString("long_name");
                    System.out.println(s);
                     // 输出address_components里面的types
                    JSONArray jsonArray3 = jsonArray2.getJSONObject(j).getJSONArray("types");
                     for( int k=0;k<jsonArray3.length();k++){
                        System.out.println(jsonArray3.get(k));
                    }
                }
            }
            
        }  catch (JSONException e) {
             //  TODO Auto-generated catch block
            e.printStackTrace();
        }

     

转载于:https://www.cnblogs.com/lee0oo0/archive/2012/04/24/2468412.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值