Json的简介与使用

 Json是一种解析服务器数据的一种方式,与XML共为解析服务器数据的主流方式.不过相对于XML解析来说, Json有着自己不一般的优点,轻量级,解析方便,现已成为解析数据的主流核心.


JSON解析器网址: http://www.qqe2.com/  

作用:将从服务器获取的数据复制到这个网址里面去,可以解析分类出来,便于我们对数据的解析进行分类.

JSON解析主要是层层解析,相对也比较简单.主要使用三个方法
1.要解析数组([])时,使用getJSONArray("解析的对象"),解析出来要获取里面的参数需要使用下标值
2.要解析对象({})时,使用getObject("解析的对象").
3.没有层套时,使用getString("键").来获取与键相对应的值.
             详细解析方式可参考最尾的解析代码,可供参考任何JSON的解析

注:JSON解析是通过键值对的,最好不要以网址上的为准. 将解析出来的Log.i打印下
        就可以看到要解析的对象的键,然后通过键来解析出值来.                                                



    返回的数组中如果需要里面的东西,有括号和数组的话,要一层层解析,
    才能获取里面的数据                                            


=========================================================
下面有两种解析方式:
                    HttpClient client=new DefaultHttpClient();
                    //此处以返回json格式数据示例,所以format=2,以根据城市名称为例,cityName传入中文
                    String url=" http://v.juhe.cn/weather/index?cityname="+
                            cityName+"&key=6e743496b56b54e803a224b2ea0ad4db";
                    HttpGet get=new HttpGet(url);
                    HttpResponse resp=client.execute(get);
                    //获取返回的json数组字符串
                    String resJson=EntityUtils.toString(resp.getEntity());
                    //resJson   {result:ok, data:[{},{},{}]}
                    JSONObject obj=new JSONObject(resJson);//解析返回的json数组
                    String res=obj.getString("resultcode");//解析返回的json数组中的resultcode ,在当前中得到的是200    

{"resultcode":"200","reason":"successed!","result":{"sk":{"temp":"29","wind_direction":"南风",
"wind_strength":"2级","humidity":"68%","time":"20:00"},"today":{"temperature":"25℃~34℃",
"weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"微风","week":"星期二","city":"东莞",
"date_y":"2015年08月04日","dressing_index":"炎热","dressing_advice":"天气炎热,建议着短衫、短裙、
短裤、薄型T恤衫等清凉夏季服装。","uv_index":"中等","comfort_index":"","wash_index":"较适宜",
"travel_index":"较适宜","exercise_index":"较适宜","drying_index":""},"future":[{"temperature":"25℃~34℃",
"weather":"多云","weather_id":{"fa":"01","fb":"01"},"wind":"微风","week":"星期二","date":"20150804"}
},"error_code":0}




下面的json格式,希望得到结果是: 江苏 南京 玄武区 南京市游乐园 

json格式如下:{"response":{"data":[{"address":"南京市游乐园","province":"江苏","district":"玄武区",
"city":"南京"}]},"status":"ok"}

解析:

JSONObject  dataJson=new JSONObject("你的Json数据“);
JSONObject  response=dataJson.getJSONObject("response");
JSONArray data=response.getJSONArray("data");
JSONObject info=data.getJSONObject(0);
String province=info.getString("province");
String city=info.getString("city");
String district=info.getString("district");
String address=info.getString("address"); 
System.out.println(province+city+district+address);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值