阐述JSON转化的结构事实说明介绍

这些都是常见的数据结构事实上大部分现代计算机语言都以某种形式支持它们这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能,当JSON转化为XML时,还有一些细节需要注意,这些细节,很多开源的XML转JSON代码里面都没有应用到,我推荐的XML 转换JSON格式的时候额外遵循的规则:

创新互联公司一直在为企业提供服务,多年的磨炼,使我们在创意设计,全网营销推广到技术研发拥有了开发经验。我们擅长倾听企业需求,挖掘用户对产品需求服务价值,为企业制作有用的创意设计体验。核心团队拥有超过十多年以上行业经验,涵盖创意,策化,开发等专业领域,公司涉及领域有基础互联网服务成都移动机房app软件定制开发、手机移动建站、网页设计、网络整合营销。

 
 
  1.  
  2.   node1_value 
  3.   node2_value 
  4.  
  5. 转化后:  
  6. var jsonObj = {  
  7. root : {  
  8.   'node1' : {  
  9.     '$' : 'node1_value'  
  10.   },  //当然,这里也可以为 $ : 'node1_value',但是推荐Dic名字加入引号的方式  
  11.   'node2' : {  
  12.     '$' : 'node2_value'  
  13.   }  
  14. }  
  15. }   
  16.  
  17. 2 XML Attribute,应该作为"$"字符开头的,“子集合,值”的方式转化,例如:  
  18.  root_att1="root_att1_value" root_att2="root_att2_value"> 
  19.    node1_att1="node1_att1_value" node1_att2="node1_att2_value">node1_value 
  20.    node2_att1="node2_att1_value" node2_att2="node2_att2_value">node2_value 
  21.  
  22. 转化后:  
  23. var jsonObj = {  
  24. root : {  
  25.   '$root_att1' : 'root_att1_value',  
  26.   '$root_att2' : 'root_att2_value',  
  27.   'node1' : {  
  28.     '$' : 'node1_value',  
  29.     '$node1_att1' : 'node1_att1_value',  
  30.     '$node1_att2' : 'node1_att2_value'  
  31.   },  
  32.   'node2' : {  
  33.     '$' : 'node2_value',  
  34.     '$node2_att1' : 'node2_att1_value',  
  35.     '$node2_att2' : 'node2_att2_value'  
  36.   }  
  37. }  

大家可以看到,转换过程中频繁使用到字符"$",这一点很关键,因为如果Attribute也采用和Child Element相同的方式转化,那么将产生子元素的歧义,后果是,一旦发生XML -> JSON转化,将不可能准确的进行此操作的逆过程,即生成的JSON无法转化为之前的XML。

此这里使用XML Element和XML Attribute中都不可能出现,而JSON转化中允许的"$"字符,标识XML Attribute(熟悉JS著名类库Prototype的朋友,对这个字符应该很熟悉 :)),让XML和JSON互相转化的过程完全可逆。#t#

当然,本文没有提到XML Namespace和XML其它特殊元素,如,标签。原因是,我认为希望转换为JSON的XML应该事先由XMLDOM做处理,简化并规避转化过程中可能出现的很多特殊的因素,以便让XML -> JSON转化过程专注于数据格式本身,而更加通俗顺畅;因此,这些因素可以认为不在本文讨论的格式转化范围内。

网页标题:阐述JSON转化的结构事实说明介绍
标题网址:http://www.shufengxianlan.com/qtweb/news0/54700.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联