JSON进阶一-初识JSON
2011-11-29 19:25
218 查看
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请看下回吧。
上述的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请看下回吧。
相关文章推荐
- Android进阶(十三)网络爬虫&json应用
- 初识Volley框架 加载以及查看json数据+html元素
- 用JSON-server模拟REST API(三) 进阶使用
- Python 函数进阶(filter/map/json/zip)
- JSON进阶第二篇 AJAX方式传递JSON数据
- 初识Volley:JsonObjectRequest、StringRequest、RequestQueue
- JSON进阶二--面向对象的JSON
- json-struts使用教程(1)-初识json-struts
- Android开发-进阶:Json字符串转换为java对象的各种实现方法[json_lib框架、Gson、org.json]
- JSON进阶二-面向对象的JSON
- Android进阶——Material Design新控件之初识TabLayout(一)
- 深度学习进阶(四)--深度神经网络中梯度消失以及卷积神经网络初识
- JSON进阶第二篇 AJAX方式传递JSON数据
- 【转】What is JSON:初识JSON
- Android进阶十一:Gson解析复杂的json数据
- golang进阶(五)——restful开发的json处理
- 廖雪峰Python教程1轮还没学明白的(4) -- IO编程 -- 序列化 -- JSON进阶
- JSON进阶二-面向对象的JSON
- JSON进阶第三篇 apache多域名及JSON的跨域问题(JSONP)
- What is JSON:初识JSON <转>