JSON数据格式
2013-12-11 21:07
399 查看
在学习AJAX的过程中,接触了一种新的数据格式——Json数据格式,一开始不是很明白,后来通过做一个“股票”的小程序,有了些了解,下面是我的总结(并非"股票"例子程序),希望对大家有所帮助。
(2)纯文本格式,Javascript原生支持;
(1)比XML格式的优势:因为是JavaScript的原生支持,所以它在JavaScript里面去解析式非常快的,可
以迅速的把json的文本格式转换成JavaScript里的对象或数组,不需要用DOM,如果是XML则还需要
用DOM来解析,而DOM的操作在不同的浏览器中还是存在着一些小的差异的,并且在IE这种浏览器中DOM操作的效率也不是很好;
(2)比XML格式的缺点:XML已经是很成熟的数据格式了,各种各样的应用都在使用XML,所以无论是在任
何一种服务器端语言里,都有很成熟的辅助的开源包/平台自己提供的包去操作XML的数据,去生成XML格
式的数据,但是Json,这方面的成熟度还相对较低,虽然随着Ajax技术的发展和流行,很多服务器端语言
也都有了一些开源包去来做Json格式数据的生成,但是和json相比成熟度还是很低的。
右边的Json数据格式中的内容——
中括号[]:代表数组;
大括号{}:用来定义对象;——右边json格式的数据,每个大括号{}就对应一个book对象,所以共3个book对象;
isdn、author、name、prive均是对象book的属性;
行,返回成一个javascript数组;
如果json数据格式对应的是一个对象的话,则必须要在它的外层加上"("
")",再用eval()方法执行;
在IE调试窗口:看变量值
点击查看运行结果
(2)掌握:如果从服务器端接受到了Json数据后,怎么把它转换成Javascript中的数组/对象——使用eval()方法
(注:客户端使用responseText接收服务器端返回的Json数据)
(3)JSON数据格式定义(Json无非就是一个数组或者一个对象)
一,概念
(1)一种轻量级的数据交换格式;(2)纯文本格式,Javascript原生支持;
二,与XML格式比较:
虽然Ajax的定义中有XML,但是很多应用中会选用json格式来进行数据交换;(1)比XML格式的优势:因为是JavaScript的原生支持,所以它在JavaScript里面去解析式非常快的,可
以迅速的把json的文本格式转换成JavaScript里的对象或数组,不需要用DOM,如果是XML则还需要
用DOM来解析,而DOM的操作在不同的浏览器中还是存在着一些小的差异的,并且在IE这种浏览器中DOM操作的效率也不是很好;
(2)比XML格式的缺点:XML已经是很成熟的数据格式了,各种各样的应用都在使用XML,所以无论是在任
何一种服务器端语言里,都有很成熟的辅助的开源包/平台自己提供的包去操作XML的数据,去生成XML格
式的数据,但是Json,这方面的成熟度还相对较低,虽然随着Ajax技术的发展和流行,很多服务器端语言
也都有了一些开源包去来做Json格式数据的生成,但是和json相比成熟度还是很低的。
三,例子
(1)简单认识
右边的Json数据格式中的内容——
中括号[]:代表数组;
大括号{}:用来定义对象;——右边json格式的数据,每个大括号{}就对应一个book对象,所以共3个book对象;
isdn、author、name、prive均是对象book的属性;
(2)小应用
如果从服务器端返回的一个json数据格式最终代表的是数组,可以直接用eval()的方式去对它进行一个执行,返回成一个javascript数组;
如果json数据格式对应的是一个对象的话,则必须要在它的外层加上"("
")",再用eval()方法执行;
<html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> function jsonTest(){ //JSON数据格式定义(Json无非就是一个数组或者一个对象) //定义一个Json数据格式的数据,并赋值给json1 var json1="[1,2,{" + "a:123,b:'String',c:[100,1001]" + "}]"; var jsonArray = eval(json1);//返回一个包含3个元素的数组 alert(jsonArray[0]);//显示数组jsonArray的第1个元素 alert(jsonArray[1]);//显示jsonArray的第2个元素 alert(jsonArray[2].a);//显示jsonarray的第3个元素(是个对象)的a属性 alert(jsonArray[2].b);//显示jsonarray的第3个元素(是个对象)的b属性 alert(jsonArray[2].c);//显示jsonarray的第3个元素(是个对象)的c属性 //定义一个Json数据格式的数据,并赋值给json2 var json2="{" + "a:'Hello',b:'[1,2,3]',c:function(){alert(\"Hi!!!\")}" + "}"; var jsonObj=eval("("+ json2 + ")");//返回一个对象——此对象包含a、b属性和c()函数 alert(jsonObj.a);//显示jsonObj对象的属性a的值 alert(jsonObj.b);//显示jsonObj对象的属性b的值 jsonObj.c(); //调用jsonObj对象的c()函数 } </script> </head> <body> <input type="button" value="JSON示例" onclick="jsonTest()" /> </body> </html>
在IE调试窗口:看变量值
点击查看运行结果
四,总结:
(1)了解:Json数据格式是怎样一个形式;(2)掌握:如果从服务器端接受到了Json数据后,怎么把它转换成Javascript中的数组/对象——使用eval()方法
(注:客户端使用responseText接收服务器端返回的Json数据)
(3)JSON数据格式定义(Json无非就是一个数组或者一个对象)
相关文章推荐
- Python使用内置json模块解析json格式数据的方法
- C#将datatable生成easyui的绑定tree 的json数据格式
- 自定义HTTPMessageConverter接收JSON格式的数据
- Android读取JSON格式数据
- GWT入门介绍(使用JSON格式的数据通讯)
- 使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET
- 拼上下级关系的json数据格式
- 中国城市_json格式数据
- android 解析json数据格式
- 一起谈.NET技术,在.NET使用JSON作为数据交换格式
- easyui加载datagrid和treegrid的几种json数据格式
- springmvc接收json格式数据
- XML和JSON数据交换格式
- json数据格式介绍
- 关于数据交换格式XML和JSON的比较
- php与Ajax(四)—xml与json数据格式
- Android数据格式解析对象JSON用法(转)
- JS处理Json格式数据
- GWT与JSON(使用JSON格式的数据通讯)
- json格式的数据处理