安卓Json数据的解析

来源:互联网 发布:胡娜事件知乎 编辑:程序博客网 时间:2024/05/17 06:48

Json:

一种key--Value 形式的数据格式,通常用于不同系统之间的数据交换。

 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 

Json 示例一:

{"id":1,"card_id":"1397907614312","name":"test_user","end_at":"2014-06-01 00:00:00","status":"OK","createdAt":"Sat Apr 19 19:40:15 CST 2014","updatedAt":"Sat Apr 19 19:40:15 CST 2014","remark":""}

这是最简单的Json形式,key--value之间用冒号隔开,key是一个字符串,value可以是int,String,还可以是Json对象。每个key--value之间用逗号隔开,最外用大括号括起来,每个大括号代表一个Json型数据。

下面使用Androd提供的JSONObject来解析它。

这样就可以把Json的数据分解开。

Json实例二、

//       {
//"count":19,
//"trains":
      //{"0":
            //{"id":1,
            // "card_id":"1397907614312",
            //"train_info":"test train info",
            //"train_date":"Apr 19, 2014 11:49:06 AM",
            //"createdAt":"2014-4-19 19:49:07",
            //"updatedAt":"2014-4-19 19:49:07",
            //"remark":""},
      //"1":
            //{"id":2,
            //"card_id":"1397907614312",
            //"train_info":"test train info",
            //"train_date":"Apr 19, 2014 11:59:41 AM",
            //"createdAt":"2014-4-19 19:59:42",
            //"updatedAt":"2014-4-19 19:59:42","remark":""},
     //"2":
            //{"id":3,
            //"card_id":"1397907614312",
            //"train_info":"test train info",
            //"train_date":"Apr 19, 2014 12:03:02 PM",
            //"createdAt":"2014-4-19 20:03:03",
            //"updatedAt":"2014-4-19 20:03:03","remark":""},

这是一个稍稍复杂的嵌套型的Json数据,最外层的Json只有两个key--value对,count---19 和trains--剩下的所有。

剩下的所有也是一个嵌套的Json数据,key是一个有序的数组,从1直到n;value还是一个Json的数据形式。并且这个Json是最简单的Json,只有有限项,可以用示例一中的方法解析。综上分析,我们需要对这个Json嵌套分析三次,层层深入,逐步逼近最小的数据项,完成Json的解析。

示例源码:

Card 是事先定义好的一个类,类中包含了数据中的各个字段。
还有一种Json型的数据value是数组形式的,明白了以上解析的原理,就不难掌握数组形式的Json的解析,目前项目中还没有用到,以后用到再补充。


0 0