之前对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文件中的名字保持一致,否则会解析错误