天天看点

JSON进阶一-初识JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

上述的JSON,是我网上找来的,而我理解的JSON是一种以键值对形式描述的数据结构,他可以等同于后台的类。

例如:我们在后台有个People类,以C#为例:

public   class  People {

         ///   <summary>

         ///  姓名

         ///   </summary>

         public   string  name;

         ///   <summary>

         ///  性别

         ///   </summary>

         public   byte  sex;

         ///   <summary>

         ///  出生日期

         ///   </summary>

         public  DateTime birth;

}

而用JSON方式描述这个People可以表现为:var People = {name:'',sex:0,birth:''};

那如何描述集合那?例如: 

List<People> pList = new List<People>(); 。

JSON的表现形式为:

[{name:'张三',sex:1,birth:'2008-10-01'},{name:'李四',sex:2,birth:2009-01-01}]

如此使用JSON就能表现出各种形式的二维表结构。

每个人都需要上学,都有自己的班级例如:

public   class  People {

         ///   <summary>

         ///  姓名

         ///   </summary>

         public   string  name;

         ///   <summary>

         ///  性别

         ///   </summary>

         public   byte  sex;

         ///   <summary>

         ///  出生日期

         ///   </summary>

         public  DateTime birth;

         ///   <summary>

         ///  班级

         ///   </summary>

         public  Classes classes;

    }

     public   class  Classes {

         ///   <summary>

         ///  班级编号

         ///   </summary>

         public   int  ID;

         ///   <summary>

         ///  班级人数

         ///   </summary>

         public   int  Count;

}

我们用JSON去表示这样的结构:

var classes = {ID:'',Count:''}

var People = {name:'',sex:'',birth:'',classes:classes};

以此类推,我们可以用JSON表现出更复杂的后台类结构:

即使是方法,构造函数也一样可以:

例如:

public   class  People {

         ///   <summary>

         ///  人类的构造函数

         ///   </summary>

         ///   <param name="cls"> 班级 </param>

         public  People(Classes cls){

             this .classes  =  cls;

        }

         ///   <summary>

         ///  姓名

         ///   </summary>

         public   string  name;

         ///   <summary>

         ///  性别

         ///   </summary>

         public   byte  sex;

         ///   <summary>

         ///  出生日期

         ///   </summary>

         public  DateTime birth;

         ///   <summary>

         ///  班级

         ///   </summary>

         public  Classes classes;

         ///   <summary>

         ///  吃饭方法

         ///   </summary>

         public   void  Eating { }

    }

     public   class  Classes {

         ///   <summary>

         ///  班级编号

         ///   </summary>

         public   int  ID;

         ///   <summary>

         ///  班级人数

         ///   </summary>

         public   int  Count;

    }

JSON的表现形式为:

var Classes  =  {ID: 1 ,Count: 20 }

var People  =  {

               name: '' ,

               sex: '' ,

               birth: '' ,

               classes:{},

               Eating: function(){ //  吃饭方法

                            alert( ' 在 ' + this .classes.ID + ' 班和 ' + this .classes.Count + ' 个同学一起吃饭 ' );

                       },

               Init: function(cls){ //  构造函数

                         this .classes  =  cls; 

                     }

};

People.Init(Classes);

People.Eating();

以上的JSON例子对应后台的Class表现形式都是static的,想知道如何使用面向对象的JSON请看下回吧。

转载于:https://www.cnblogs.com/KangC/archive/2008/12/08/1349130.html