当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JSON入门教程:Json是什么?为什么使用Json?

JSON入门教程:Json是什么?为什么使用Json?

2019年03月30日  | 移动技术网IT编程  | 我要评论
json入门教程:json是什么?为什么使用json? json是什么? json(javascript object notation)是指javascript 对象表示法,可

json入门教程:json是什么?为什么使用json?

json是什么? json(javascript object notation)是指javascript 对象表示法,可以用来表示string、number、boolean、数组甚至对象等数据。 json类似xml,是存储和交换文本信息的语法。 json是轻量级的文本数据交换格式。 json使用javascript语法来描述数据对象,独立于语言和平台,适合于服务器与javascript客户端的交互。

为什么使用json?

对于 ajax 应用程序来说,json 比 xml 更快更易使用;
- 使用xml
1. 读取xml文档
2. 使用xml dom来循环遍历文档
3. 读取值并存储在变量中
- 使用json
1. 读取json字符串
2. 用eval( ) 处理json字符串

json示例

{
   "people":[
      {"name":"bill","age":"23",sex:"男"},
      {"name":"phobe","age":"23",sex:"女"},
      {"name":"geoge","age":"22",sex:"男"},
    ]
}
//这个 people 对象是包含 3 个人记录(对象)的数组。

json的语法规则

花括号表示对象
var object = {}; 方括号表示数组
var arr =[]; 属性名要用双引号包围起来
var student ={ "name":"tracy"} 对象和属性值之间用冒号隔开
var student ={ "name":"linda"} 多个属性由逗号分隔
var students = {"name": "judy","age":18} json数据的书写格式是:名称/值对
name":"helen"//等价于javascript语句 name = "helen

json怎么用?

把json文本转换成javascript对象
从web服务器上读取json数据(作为文件或httprequest),将json数据转换为javascript对象,然后在网页中使用该数据。
由于json语法是javascript语法的子集,javascript函数eval()可用于将json文本转换成javascript对象。
var employeeinfo = '{ "employees" : [' +
'{ "firstname":"bill" , "lastname":"gates" },' +
'{ "firstname":"george" , "lastname":"bush" },' +
'{ "firstname":"thomas" , "lastname":"carter" } ]}';  
//注意两边的括号 
var  obj = eval("(" + employeeinfo + ")");
alert(obj.employees[i].firstname)//bill
序列化与反序列化
来看一看廖老师怎么说:如果我们要在不同的语言之间传递对象,就必须把对象序列化为标准格式,比如xml,但更好的方法是序列化为json,因为json表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。json不仅是标准格式,并且比xml更快,而且可以直接在web页面中读取,非常方便。
简单理解就是对象序列化为二进制序列,才能在网络上传送,接收方则需要将二进制序列再恢复为对象。
//序列化类
public class personnel{
   public int id {get;set;}
   public string name{get;set;}
}
//执行序列化与反序列化
private void fmmain_load(object sender, eventargs e)
 {
      personnel personnel = new personnel();
      personnel.id = 1;
      personnel.name = "小仙女";
      javascriptserializer jsonserializer = new javascriptserializer();
      //执行序列化  需要引入system.web.script.serialization命名空间
      string r1 = jsonserializer.serialize(personnel); //r1输出结果:{"id":1,"name":"小仙女"} 
      //执行反序列化
      personnel _personnel = jsonserializer.deserialize(r1);
 }

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网