看了就知道什么是JSON


Posted in Javascript onDecember 09, 2007

什么是JSON 
JSON(Javascript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于Javascript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, Javascript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 
JSON概念很简单,就是服务器直接生成Javascript语句,客户端获取后直接用eval方法来获得这个对象,这样就可以省去解析XML的性损失。

使用XML表示:   

<items>    
    <item>    
        <id>1</id>    
        <author>Jackson</author>    
        <url>https://3water.com</url>    
        <content>Welcome to Web.cn</content>    
    </item>    
    <item>    
        <id>2</id>    
        <author>Relkn</author>    
        <url>https://3water.com</url>    
        <content>Web.cn关注互联网新技术</content>    
    </item>    
    <item>    
        <id>3</id>    
        <author>Kvogend</author>    
        <url>https://3water.com</url>    
    <content>3water.com三水点靠木</content>    
    </item>    
</items>
    
代码:
<items>  
    <item>  
        <id>1</id>  
        <author>Jackson</author>  
        <url>https://3water.com</url>  
        <content>Welcome to Web.cn</content>  
    </item>  
    <item>  
        <id>2</id>  
        <author>Relkn</author>  
        <url>https://3water.com</url>  
        <content>Web.cn关注互联网新技术</content>  
    </item>  
    <item>  
        <id>3</id>  
        <author>Kvogend</author>  
        <url>https://3water.com</url>  
    <content>3water.com三水点靠木</content>  
    </item>  
</items>  

使用JSON:   
{items:[     
{     
id:1,     
author:\"Jackson\",    
url:\"https://3water.com\",    
content:\"Welcome to Web.cn\"    
},    
{    
id:2,    
author:\"Relkn\",    
url:\"https://3water.com\",    
content:\"Web.cn关注互联网新技术\"    
},    
{    
id:3,    
author:\"Kvogend\",    
url:\"https://3water.com\",    
content:\"3water.com三水点靠木\"    
}     
]};    

代码:  
{items:[  
{  
id:1,  
author:\"Jackson\",  
url:\"https://3water.com\",  
content:\"Welcome to Web.cn\"  
},  
{  
id:2,  
author:\"Relkn\",  
url:\"https://3water.com\",  
content:\"Web.cn关注互联网新技术\"  
},  
{  
id:3,  
author:\"Kvogend\",  
url:\"https://3water.com\",  
content:\"3water.com三水点靠木\"  
}  
]};  

JSON不仅减少了解析XML解析带来的性能问题和兼容性问题,而且对于Javascript来说非常容易使用,可以方便的通过遍历数组以及访问对象属性来获取数据,其可读性也不错,基本具备了结构化数据的性质。不得不说是一个很好的办法,而且事实上google maps就没有采用XML传递数据,而是采用了JSON方案。

JSON的另外一个优势是"跨域性",例如你在3water.com的网页里使用

<script type="text/javascript" src="" target="_blank">http://www.yyy.com/some.js">

是完全可行的,这就意味着你可以跨域传递信息。而使用XMLHttpRequest却获取不了跨域的信息,这是Javascript内部的安全性质所限制的。

JSON能完全取代XML吗?当然不能,原因就在于XML的优势:通用性。要使服务器端产生语法合格的Javascript代码并不是很容易做到的,这主要发生在比较庞大的系统,服务器端和客户端有不同的开发人员。它们必须协商对象的格式,这很容易造成错误。

Javascript 相关文章推荐
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
Sep 14 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
Oct 29 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
Dec 26 Javascript
javascript自定义in_array()函数实现方法
Aug 03 Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 Javascript
js实现炫酷的左右轮播图
Jan 18 Javascript
实现一个完整的Node.js RESTful API的示例
Sep 29 Javascript
vue刷新和tab切换实例
Feb 11 Javascript
angularjs数组判断是否含有某个元素的实例
Feb 27 Javascript
node的process以及child_process模块学习笔记
Mar 06 Javascript
React-redux实现小案例(todolist)的过程
Sep 29 Javascript
Vue3.0数据响应式原理详解
Oct 09 Javascript
javascript while语句和do while语句的区别分析
Dec 08 #Javascript
js中将多个语句写成一个语句的两种方法小结
Dec 08 #Javascript
JavaScript开发时的五个注意事项
Dec 08 #Javascript
JS的递增/递减运算符和带操作的赋值运算符的等价式
Dec 08 #Javascript
javascript数组使用调用方法汇总
Dec 08 #Javascript
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
Dec 08 #Javascript
项目实践之javascript技巧
Dec 06 #Javascript
You might like
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
php正则表达匹配中文问题分析小结
2012/03/25 PHP
PHP7 新增常量
2021/03/09 PHP
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
深入理解Javascript中的this关键字
2015/03/27 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
python中join()方法介绍
2018/10/11 Python
python进行TCP端口扫描的实现
2018/12/21 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
应届毕业生个人自我评价
2013/09/20 职场文书
高中军训感言1000字
2014/03/01 职场文书
商业街策划方案
2014/05/31 职场文书
2015年仓库工作总结
2015/04/09 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书
七年级作文之英语老师
2019/10/28 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫