JSON认识
JSON:JavaScript对象表示法(JavaScript ObjectNotation)。是存储和交换文本信息的语法。类似 XML。这也是我们经常拿来和XML对比的原因。
在web中进行数据传输上相比XML,JSON有很大的优势,这得益于JSON是Javascript的原生格式,所谓原生格式就是使用时不需要引入任何组件和类库,就支持json格式,这么说是有原因的,在IE 5之前的js是不支持json格式的,为了使用json格式,必须引入一个json.js的文件,但以后新的版本的游览器都开始支持这一格式,所以对现在的的浏览器都不需要引入这个文件了,就是说json变成了js的原生格式了。
JSON语法
首先通过一个实例认识:
{ people: [
{ Name: "A", Age:"23" },
{ Name: "B", Age:"24" }
]}
{ people1: [
{ Name: "C", Age:"23" },
{ Name: "D", Age:"24" }
],
people2: [
{ Name: "E", Age:"23" },
{ Name: "F", Age:"24" }
]
}
JSON语法是JavaScript对象表示法语法的子集。
其语法格式说明:
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
例如{ Name: "A",Age:"23" },与下面这条JavaScript 语句等价:
Name ="A"
Age ="23"
JSON使用
作为数据交换格式,JSON和XML一样具有语言无关性的特点,可以在web中传递数据。在Web项目中,JSON传输数据的过程基本如下:
首先,浏览器通过JavaScript创建对象,并把对象转换成JSON字符串,以Ajax请求方式发送字符串到服务器。
然后,服务器端解析收到的JSON字符串,并创建一个类实例,执行相关业务逻辑,通过创建新的对象来存储要返回客户端的数据,即把这个对象转换成JSON字符串并返回到浏览器。
最后,浏览器通过JavaScript解析收到的JSON字符串,并将其转换为预定义的对象,之后使用该对象完成对页面元素的更新。
以上整个过程基本是JSON在进行数据传递的一个过程。
JSON对象转换成字符串
varobj1=obj.toJSONString();
//或者
varobj1=JSON.stringify(obj);
alert(obj1);
JS解析JSON
所谓解析JSON,就是从web 服务器上读取JSON 数据后,将 JSON 数据转换为JavaScript 对象,然后在网页中使用该数据。
以下通过简单的JSON字符串形式进行实例说明。
创建包含 JSON 语法的 JavaScript 字符串:
var txt = '{"people" : [' +
'{"firstName":"Bill" , "lastName":"Gates"},' +
'{"firstName":"George" ,"lastName":"Bush" },' +
'{"firstName":"Thomas" ,"lastName":"Carter" } ]}';
Javascript解析JSON,将JSON 文本转换为 JavaScript 对象有两种方式:
1、eval()函数
由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为JavaScript 对象。
格式如下:
var obj = eval("(" + txt + ")");
2、使用json.js解析JSON
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON文本,而不会编译脚本。
varobj = txt.parseJSON();
学习小结
以上通过比较简单的分析和实例对JSON有了基本的认识,对以后的项目实践JSON使用中打下一个基础,肯定还需要不断的学习和实践,知识首先重在认识,其次理解,最后是应用,当然认识、理解和应用这些都是相辅相成的,生命不息,学习不止。