自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

闡述JSON轉(zhuǎn)化的結(jié)構(gòu)事實說明介紹

開發(fā)
JSON是Javascript,F(xiàn)lash Action Script等符合ECMA Script規(guī)范的腳本語言的輕量級數(shù)據(jù)表示,但是由于XML強大的自描述性,因此在實踐應用過程中

這些都是常見的數(shù)據(jù)結(jié)構(gòu)事實上大部分現(xiàn)代計算機語言都以某種形式支持它們這使得一種數(shù)據(jù)格式在同樣基于這些結(jié)構(gòu)的編程語言之間交換成為可能,當JSON轉(zhuǎn)化為XML時,還有一些細節(jié)需要注意,這些細節(jié),很多開源的XML轉(zhuǎn)JSON代碼里面都沒有應用到,我推薦的XML 轉(zhuǎn)換JSON格式的時候額外遵循的規(guī)則:

  1. <root> 
  2.   <node1>node1_value</node1> 
  3.   <node2>node2_value</node2> 
  4. <root> 
  5. 轉(zhuǎn)化后:  
  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,應該作為"$"字符開頭的,“子集合,值”的方式轉(zhuǎn)化,例如:  
  18. <root root_att1="root_att1_value" root_att2="root_att2_value"> 
  19.   <node1 node1_att1="node1_att1_value" node1_att2="node1_att2_value">node1_value</node1> 
  20.   <node2 node2_att1="node2_att1_value" node2_att2="node2_att2_value">node2_value</node2> 
  21. </root> 
  22. 轉(zhuǎn)化后:  
  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. }  

大家可以看到,轉(zhuǎn)換過程中頻繁使用到字符"$",這一點很關(guān)鍵,因為如果Attribute也采用和Child Element相同的方式轉(zhuǎn)化,那么將產(chǎn)生子元素的歧義,后果是,一旦發(fā)生XML -> JSON轉(zhuǎn)化,將不可能準確的進行此操作的逆過程,即生成的JSON無法轉(zhuǎn)化為之前的XML。

此這里使用XML Element和XML Attribute中都不可能出現(xiàn),而JSON轉(zhuǎn)化中允許的"$"字符,標識XML Attribute(熟悉JS著名類庫Prototype的朋友,對這個字符應該很熟悉 :)),讓XML和JSON互相轉(zhuǎn)化的過程完全可逆。#t#

當然,本文沒有提到XML Namespace和XML其它特殊元素,如<!DOCTYPE>,<!ENTITY>標簽。原因是,我認為希望轉(zhuǎn)換為JSON的XML應該事先由XMLDOM做處理,簡化并規(guī)避轉(zhuǎn)化過程中可能出現(xiàn)的很多特殊的因素,以便讓XML -> JSON轉(zhuǎn)化過程專注于數(shù)據(jù)格式本身,而更加通俗順暢;因此,這些因素可以認為不在本文討論的格式轉(zhuǎn)化范圍內(nèi)。

責任編輯:chenqingxiang 來源: 賽迪
相關(guān)推薦

2010-01-07 17:48:02

JSON結(jié)構(gòu)

2010-01-05 17:35:09

JSON數(shù)組格式

2010-01-08 09:03:38

返回JSON數(shù)據(jù)

2009-12-18 16:28:35

ADO.NET結(jié)構(gòu)

2010-02-03 17:37:30

Python語法

2010-01-07 17:58:49

JSON數(shù)值

2010-01-06 10:27:32

JSON數(shù)組

2010-01-06 17:06:05

Json格式

2010-01-08 11:11:38

JSON 序列化

2010-01-12 09:39:58

C++語言

2010-01-08 13:33:06

JSON來歷

2010-01-07 09:31:27

Json數(shù)據(jù)異常

2013-11-25 11:04:45

2021-07-14 06:40:03

Spring Boot端點性能

2010-01-06 15:30:51

JSON和XML

2010-01-06 15:18:51

Json插件

2010-02-04 13:52:30

Android ap

2010-01-05 17:52:34

JSON形式

2010-01-06 10:10:04

JSON建構(gòu)

2010-01-05 16:33:35

使用JSON
點贊
收藏

51CTO技術(shù)棧公眾號