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請看下回吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章