JSON解析数据

JSON的优势在于它的体积理小,在网络上进行传输时,可以节省流量。虽然语义较差,但是对于只给程序员看的数据来说,这个缺点不用考虑。

一、使用JSONObject

JSON数据用JSONObject类来解析逻辑比较简单,用String建立对象,然后用这对象取值就行了,不同的类型,用不同的参数接着就可以了,和XML一样,一层一层解析进去就可以了。

  • getJSONObject(“data”),去接住一个json
  • getJSONArray(“forecast”),接住一个数组
  • getString(1):根据index接住一个Sring(也可以int等),调用此方法的对象是JSONArray
//下面对json的数据进行处理
//1.建立一个JSONObject对象接受一个String类型的json
JSONObject jsonObject =new JSONObject(json);
//2.每一层的json,进行解析就可以了
String desc=jsonObject.getString("desc");//原始数据是什么类型,就用什么接
int status= jsonObject.getInt("status");

if(status==1000){
    //如果还一个JSONObject,就从头再解析
    JSONObject dataObject=jsonObject.getJSONObject("data");
    //解析到数组
    JSONArray data=dataObject.getJSONArray("forecast");
    //解析到具体的值了
    String[] weather=new String[]{
        data.getString(1),
        data.getString(2),
        data.getString(3),  
    };  

}

二、使用GSON

GSON是没在官方的API中,要导包。GSON主要就是可以将一段JSON格式的字符串自动映射成一个对象。假如星期三一天的天气,有一个Weather类

GSON gson = new GSON();
Weather weather =gson.fromJson(data,Weather.class);

附:解析的原始数据

{
    "desc": "OK", 
    "status": 1000, 
    "data": {
        "wendu": "27", 
        "ganmao": "各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。", 
        "forecast": [
            {
                "fengxiang": "无持续风向", 
                "fengli": "微风级", 
                "high": "高温 30℃", 
                "type": "多云", 
                "low": "低温 23℃", 
                "date": "21日星期三"
            }, 
            {
                "fengxiang": "无持续风向", 
                "fengli": "微风级", 
                "high": "高温 30℃", 
                "type": "多云", 
                "low": "低温 23℃", 
                "date": "22日星期四"
            }, 
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值