JSON为什么那样红为什么要用json(另有洞天)


Posted in Javascript onDecember 26, 2012

json是1年内迅速红遍全球的东东。
现在解释JSON是什么,大家都会说我老土吧,这里我想分析一下json红的原因,我们又得到什么启示呢。
json是什么,json.org是一种简洁有效的数据载体,是一种用字符串表示复杂js对象的方式,后端好生成,前端0解释。
它的风行和一下几点原因离不开的。

持久化的风潮
persistence是javaEE5引入的重要模块。
php先天具备持久化特性每个变量都可以serialize()和unserialize()与字符串相互转化。
持久化带来最直接的好处就是复杂对象存储和传输,衡量持久化机制的优劣的重要标准是效率。

WEB2.0的推动
Ajax引发了Web2.0革命,其中的x是xml。在ajax中xml是作为前后台数据传输的载体的。
随着Web2.0的大规模应用,xml解释的效率问题就暴露无疑了,xml是具有非常严禁的结构,这造成了任何浏览器把xml装入,解释成javaScript可以访问的对象的过程是漫长的。而json是js默认支持的最简洁对象创建方式,js接收他是轻松加愉快的,所以在持久化数据传输的舞台上json靠效率取胜。

JSON本身易用
Ajax为什么一些老技术结合起来突然火了呢,因为易用。说白了自从上世纪有了DHTML,无刷新异步数据传输的解决方式绝不仅仅只有xmlHttpRequest一家。隐藏的iframe完全可以做到,而且一直也有人这么干。Ajax红了在于其易用性,所以几家领军企业对期的大规模应用引发Web2.0.
JSON同样易用,会了JSON之后我已经用var obj = {};var arr = []代替了var obj = new Object();var obj = new Array()。JSON是js中最简洁的对象定义方式,对于会js,用过eval()的朋友基本上没有什么学习成本。

以XML为代表的树形结构的风靡:
从数据结构的角度看xml的流行,因为xml是一颗树,树状的数据结构在像xml一样除了本身的内容节点再加上属性节点之后的威力如何大家都有体会,DOM是这种结构,UML是这种结构。
当我们用数据去描述客观世界的时候发现仅仅靠关系数据模型中的二维表已显笨拙,树形结构是更接近思维的一种,这也是人们在做会议记录时不在是notepad而使用freemind的原因。同样使用二维表,记录parentid的方式存储树的效率低下也给了LADP的发展空间。
说回来JSON,他是一种定义JS对象的方式,而JS中的Object是一树的形式组织的实体,所以JSON定义的对象在描述数据的功能上是足够的。

再说几个JSON相关的话题
JSON是解决xml效率问题的唯一途径么?
也不尽然,在本人不知道json之前,在使用div传输数据。
后台传到前台的是xmlHttp.responseText = '<div age="18" personid="007">lenel</div>';
然后前台接受数据时使用

function toDivElememnt(s){ 
var oDiv = document.createElement("div"); 
oDiv.innerHTML = s; 
oDiv = oDiv.firstChild; 
return oDiv; 
}

这个方法里我没有用js来解释json,而是用DOM来解释HTML串,这也是相当自然的,前面已经说过HTML串也是树状结构,我拿到oDiv之后就可以访问到age,personid等等属性了,效率也是相当可以的,呵呵。
这个不是我的原创啊,来自与我从前的Leader,牛人啊,良师益友。

JSON会代替XML么?
不会,在Ajax这个领域可能我们会搞Ajaj,但是XML如果只能干这点事那就不是XML了:)

还没用JSON么?
不要落伍了哈哈,当前主流的后台语言都有在后台生成、解析JSON的API,具体怎么用json,API去哪儿找http://www.json.org看看吧

我们真的得到什么启示么?
我还是没总结出来具体的,但是我认为语言是相通的,javaScript不能IOC么?

Javascript 相关文章推荐
基于jquery的返回顶部效果(兼容IE6)
Jan 17 Javascript
js不能跳转到上一页面的问题解决方法
Mar 01 Javascript
javascript时间函数大全
Jun 30 Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 Javascript
Vue.js使用v-show和v-if的注意事项
Dec 13 Javascript
简单的渐变轮播插件
Jan 12 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
Apr 07 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
Vue实现点击后文字变色切换方法
Feb 11 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
Feb 22 Javascript
详解Chart.js轻量级图表库的使用经验
May 22 Javascript
vue中实现左右联动的效果
Jun 22 Javascript
JS操作Cookies包括(读取添加与删除)
Dec 26 #Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
Dec 26 #Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
Dec 26 #Javascript
window.open以post方式将内容提交到新窗口
Dec 26 #Javascript
JavaScript中json对象和string对象之间相互转化
Dec 26 #Javascript
jQuery-serialize()输出序列化form表单值的方法
Dec 26 #Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
Dec 25 #Javascript
You might like
php flv视频时间获取函数
2010/06/29 PHP
php mail to 配置详解
2014/01/16 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python实现转圈打印矩阵
2019/03/02 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
护士长竞聘书
2014/03/31 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
党员自评材料范文
2014/12/17 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript