博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSON为什么那样红(另有洞天)
阅读量:4842 次
发布时间:2019-06-11

本文共 1762 字,大约阅读时间需要 5 分钟。

json是1年内迅速红遍全球的东东。

现在解释JSON是什么,大家都会说我老土吧,这里我想分析一下json红的原因,我们又得到什么启示呢。
json是什么,是一种简洁有效的数据载体,是一种用字符串表示复杂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去哪儿找看看吧

我们真的得到什么启示么?

我还是没总结出来具体的,但是我认为语言是相通的,javaScript不能IOC么?

转载于:https://www.cnblogs.com/zhwl/archive/2012/02/27/2369494.html

你可能感兴趣的文章
css 在各种浏览器兼容调整
查看>>
三元环、四元环计数
查看>>
(转)网页设计标准尺寸
查看>>
实现不同进程之间的通信
查看>>
SpringBoot
查看>>
apache POI之excel操作
查看>>
【mark】linux查看端口占用
查看>>
String的trim()用于去掉字符串前后的空格
查看>>
jquery相关代码
查看>>
USACO 2.3 Zero Sum
查看>>
android 工具类 DateUtil
查看>>
EM算法原理
查看>>
高速排序算法
查看>>
EJB究竟是什么,真的那么神奇吗??
查看>>
数据结构——集合有关
查看>>
NSCondition
查看>>
常用单词7
查看>>
html5中input的type类型有哪些(总结)
查看>>
(转)dp动态规划分类详解
查看>>
手机归属地查询
查看>>