JSON观点很简朴,就是服务器直接生成Javascript语句,客户端猎取后直接用eval要领来取得这个对象,如许便可以省去剖析XML的性丧失。
如要从背景载入信息,写成XML,以下:
<contact> <friend> <name>Michael</name> <email>17bity@gmail.com</email> <homepage>http://www.jialing.net</homepage> </friend> <friend> <name>John</name> <email>john@gmail.com</email> <homepage>http://www.john.com</homepage> </friend> <friend> <name>Peggy</name> <email>peggy@gmail.com</email> <homepage>http://www.peggy.com</homepage> </friend> </contact>
而写成JSON:
[ { name:"Michael", email:"17bity@gmail.com", homepage:"http://www.jialing.net" }, { name:"John", email:"john@gmail.com", homepage:"http://www.jobn.com" }, { name:"Peggy", email:"peggy@gmail.com", homepage:"http://www.peggy.com" } ]
简朴的不只是表达上,最主要的是可以抛弃让人蒙头转向的DOM剖析了。由于只需相符Javascript的声明范例,JavaScrip会自动帮你剖析 好 的。Ajax中运用JSON的基础要领是前台载入背景声明Javascript对象的字符串,用eval要领来将它转为现实的对象,末了经由过程 DHTML更新页面信息。
JSON不仅削减了剖析XML剖析带来的机能题目和兼容性题目,而且关于Javascript来说非常轻易运用,可以轻易的经由过程遍历数组以及接见对象属性 来猎取数据,其可读性也不错,基础具有了构造化数据的性子。不能不说是一个很好的方法,而且事实上google maps就没有采纳XML通报数据,而是采纳了JSON计划。
JSON的别的一个上风是"跨域性",比方你在www.Web.cn的网页里运用
JSON的定义
一种轻量级的数据交流花样,具有优越的可读和便于疾速编写的特征。业内主流手艺为其供应了完全的解决计划(有点类似于正则表达式 ,取得了现今大部分言语的支撑),从而可以在差别平台间举行数据交流。JSON采纳兼容性很高的文本花样,同时也具有类似于C言语体系的行动。
XML的定义
扩大标记言语 (Extensible Markup Language, XML) ,用于标记电子文件使其具有构造性的标记言语,可以用来标记数据、定义数据范例,是一种许可用户对本身的标记言语举行定义的源言语。 XML是规范通用标记言语 (SGML) 的子集,非常合适 Web 传输。XML 供应一致的要领来形貌和交流独立于运用顺序或供应商的构造化数据。
[ XML ]
运用XML作为传输花样的上风:
花样一致, 相符规范
轻易与其他体系举行长途交互, 数据同享比较轻易
瑕玷:
XML文件花样文件巨大, 花样庞杂, 传输占用带宽
服务器端和客户端都须要消费大批代码来剖析XML, 不管服务器端和客户端代码变的非常庞杂和不轻易保护
客户端差别浏览器之间剖析XML的体式格局不一致, 须要反复编写很多代码
服务器端和客户端剖析XML消费资本和时候
[ JSON ]
那末除了XML花样, 另有没有其他花样, 有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交流花样可以替换XML的事情.
长处:
数据花样比较简朴, 易于读写, 花样都是紧缩的, 占用带宽小
易于剖析这类言语, 客户端JavaScript可以简朴的经由过程eval_r()举行JSON数据的读取
支撑多种言语, 包含ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等言语服务器端言语, 便于服务器端的剖析
在PHP天下, 已有PHP-JSON和JSON-PHP涌现了, 便于PHP序列化后的顺序直接挪用. PHP服务器端的对象、数组等可以直接生JSON花样, 便于客户端的接见提取.
由于JSON花样可以直接为服务器端代码运用, 大大简化了服务器端和客户端的代码开辟量, 然则完成的使命稳定, 且易于保护
瑕玷:
没有XML花样这么推行的深入人心和运用普遍, 没有XML那末通用性
JSON花样现在在Web Service中推行还属于初级阶段
JSON 和 XML 优瑕玷的比较在可读性方面,JSON和XML的数据可读性基础雷同。JSON和XML的可读性可谓势均力敌,一边是发起的语法,一边是范例的标签情势,很难分出输赢。
在可扩大性方面,XML天生有很好的扩大性,JSON固然也有,没有什么是XML能扩大,JSON不能的。
在编码难度方面,XML有雄厚的编码东西,比方Dom4j、JDom等,JSON也有json.org供应的东西,然则JSON的编码显著比XML轻易很多,纵然不借助东西也能写出JSON的代码,可是要写好XML就不太轻易了。
在解码难度方面,XML的剖析得斟酌子节点父节点,让人头昏眼花,而JSON的剖析难度险些为0。这一点XML输的真是没话说。
在盛行度方面,XML已被业界普遍的运用,而JSON才刚刚开始,然则在Ajax这个特定的范畴,将来的生长肯定是XML让位于JSON。到时Ajax应当变成Ajaj(Asynchronous Javascript and JSON)了。
JSON和XML一样具有雄厚的剖析手腕。
JSON相干于XML来说,数据的体积小。
JSON与JavaScript的交互越发轻易。
JSON对数据的形貌性比XML较差。
JSON的速率要远远快于XML。
1.数据交流花样比较之关于XML和JSON:
XML:extensible markup language,一种类似于HTML的言语,他没有预先定义的标签,运用DTD(document type definition)文档范例定义来构造数据;花样一致,跨平台和言语,早已成为业界公认的规范。细致的可以问Google或百度。比拟之JSON这类轻量级的数据交流花样,XML可以称为重量级的了。
JSON : JavaScript Object Notation 是一种轻量级的数据交流花样。易于人浏览和编写。同时也易于机械剖析和生成。它基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。 JSON采纳完全独立于言语的文本花样,然则也运用了类似于C言语家属的习气(包含C, C++, C#, Java, JavaScript, Perl, Python等)。这些特征使JSON成为抱负的数据交流言语。
2.数据交流花样比较之关于轻量级和重量级:
轻量级和重量级是相对来说的,那末XML相干于JSON的重量级表现在哪呢?我想应当表现在剖析上,XML现在设想了两种剖析体式格局:DOM和 SAX;
DOM是把一个数据交流花样XML算作一个DOM对象,须要把XML文件全部读入内存,这一点上JSON和XML的道理是一样的,然则XML要斟酌父节点和子节点,这一点上JSON的剖析难度要小很多,由于JSON构建于两种构造:key/value,键值对的鸠合;值的有序鸠合,可理解为数组;
SAX不须要全部读入文档便可以对剖析出的内容举行处置惩罚,是一种逐渐剖析的要领。顺序也可以随时停止剖析。如许,一个大的文档便可以逐渐的、一 点一点的展示出来,所以SAX合适于大规模的剖析。这一点,JSON现在是做不到得。
所以,JSON和XML的轻/重量级的区分在于:JSON只供应团体剖析计划,而这类要领只在剖析较少的数据时才起到优越的结果;而XML提 供了对大规模数据的逐渐剖析计划,这类计划很合适于对大批数据的处置惩罚。
3.数据交流花样比较之关于数据花样编码及剖析的难度:
在编码上,虽然XML和JSON都有各自的编码东西,然则JSON的编码要比XML简朴,纵然不借助东西,也可以写出JSON代码,但要写出好的XML代码就有点难题;与XML一样,JSON也是基于文本的,且它们都运用Unicode编码,且其与数据交流花样XML一样具有可读性。
主观上来看,JSON更加清楚且冗余更少些。JSON网站供应了对JSON语法的严厉形貌,只是形貌较简短。从整体来看,XML比较合适于标记 文档,而JSON却更适于举行数据交流处置惩罚。
在剖析上,在一般的web运用范畴,开辟者经常为XML的剖析伤脑筋,无论是服务器端生成或处置惩罚XML,照样客户端用 JavaScript 剖析XML,都经常致使庞杂的代码,极低的开辟效力。
现实上,关于大多数web运用来说,他们基础不须要庞杂的XML来传输数据,XML声称的扩大性在此就很少具有上风;很多Ajax运用以至直接返回HTML片断来构建动态web页面。和返回XML并剖析它比拟,返回HTML片断大大降低了体系的庞杂性,但同时缺少了肯定的灵活性。同XML或 HTML片断比拟,数据交流花样JSON 供应了更好的简朴性和灵活性。在web serivice运用中,最少就现在来说XML仍有不可动摇的职位。
以上就是关于JSON和XML优瑕玷的细致引见的细致内容,更多请关注ki4网别的相干文章!