Json解析的过程

之前对Json有过简单的了解,现在又有了进一步的认识,以前我们常见的是Xml文件的解析,现在Json解析是另外一种解析的方法,json解析很简单,一句代码就可以搞定,不过得先知道是如何看json文件的,下面是一段json格式的文件:

{
    "code": 200,
    "msg": "success",
    "newslist": [
        {
            "ctime": "2016-08-18 13:52",
            "title": "穿白裙露香肩!朴信惠美得不食人间烟火",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/17/1723/172394/17239445_small.jpg",
            "url": "http://ent.qq.com/a/20160818/030857.htm"
        },
        {
            "ctime": "2016-08-18 14:39",
            "title": "柯震东携新片《再见瓦城》 入围多伦多影展",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/17/1724/172403/17240327_small.jpg",
            "url": "http://ent.qq.com/a/20160818/033475.htm"
        },
        {
            "ctime": "2016-08-15 11:46",
            "title": "《士兵突击》兄弟情感现状:宝强离婚 李晨热恋",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/17/1719/171961/17196155_small.jpg",
            "url": "http://ent.qq.com/a/20160815/025208.htm"
        },
        {
            "ctime": "2016-08-12 13:18",
            "title": "周海媚称与小7岁男友分手 自嘲只有爱犬追自己",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/ent/pics/hv1/48/37/2113/137407308_small.jpg",
            "url": "http://ent.qq.com/a/20160812/029248.htm"
        },
        {
            "ctime": "2016-08-11 06:50",
            "title": "“任盈盈”哪有那么惨!她晒近照气色挺不错",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/ent/pics/hv1/89/42/2112/137343599_small.jpg",
            "url": "http://ent.qq.com/a/20160811/004795.htm"
        },
        {
            "ctime": "2016-08-10 11:57",
            "title": "吴敏霞的男友被她藏了7年 今年公开明年就大婚",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/ent/pics/hv1/134/215/2111/137322734_small.jpg",
            "url": "http://ent.qq.com/a/20160810/028119.htm"
        },
        {
            "ctime": "2016-08-10 06:19",
            "title": "叶青疑遭姚笛抢角 怒斥:抢别人的人 还抢角色",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/ent/pics/hv1/125/137/2111/137302835_small.jpg",
            "url": "http://ent.qq.com/a/20160810/004689.htm"
        },
        {
            "ctime": "2016-08-09 09:01",
            "title": "昆凌被疑怀二胎 周杰伦父亲节礼物惊见“婴儿”",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/17/1712/171202/17120230_small.jpg",
            "url": "http://ent.qq.com/a/20160809/012830.htm"
        },
        {
            "ctime": "2016-08-09 09:36",
            "title": "王菲普吉岛庆47岁生日 两个女儿依偎在身边",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/17/1712/171212/17121244_small.jpg",
            "url": "http://ent.qq.com/a/20160809/016151.htm"
        },
        {
            "ctime": "2016-08-08 11:37",
            "title": "姚晨怀二胎上围激增孕肚如球 穿紧身衣一览无余",
            "description": "腾讯明星",
            "picUrl": "http://img1.gtimg.com/17/1710/171086/17108603_small.jpg",
            "url": "http://ent.qq.com/a/20160808/024393.htm"
        }
    ]
}
{}代表一个对象,[]代表一个集合,我们将这段文字格式化后更方便解析:

看中间部分,这个json文件中包含两个字符串code和msg,还有一个newslist集合,在写bean时集合是要加泛型的,这个泛型又是一个类,这个类中包含元素,根据文本的类型定义数据类型。一个类就是一个bean,一个集合也就是一个类。总结一下:json文件中有基本数据类型的文本,bean和集合,bean直接作为一个类,集合加泛型也要创建一个类,但是处于每一级的关系不能混乱。写成javaBean如下:


最后开始解析:

                Gson gson = new Gson();
		EntertainBean bean = gson.fromJson(result, EntertainBean .class);
		ArrayList<NewsList> newslist=bean.newslist;//这样就拿到了newslist中的内容
是不是很简单呢,但是有几点是一定要注意的,否则解析不出来。

1,解析的每个节点的含义必须明白,什么是Bean,什么是集合,且包含关系要正确

2,无论你最后所需要的内容有多少,只要你需要Json里的内容,就要把这个文件所有的内容都要解析完

3,名字必须要和json文件中的名字保持一致,否则会解析错误


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值