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#爲例:
/**//// <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就能表現出各種形式的二維表結構。
每個人都需要上學,都有自己的班級例如:
/// <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表現出更復雜的後臺類結構:
即使是方法,構造函數也一樣可以:
例如:
/// <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 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請看下回吧。