阐述JSON转化的结构事实说明介绍
创始人
2024-06-19 20:00:58
0

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

  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转化过程专注于数据格式本身,而更加通俗顺畅;因此,这些因素可以认为不在本文讨论的格式转化范围内。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...