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