2012-05-03 84 views
17

JSON是否需要xml情況下的根元素。據我所知這是一個有效的JSON字符串。JSON根元素

{ 
    "email":[ 
     { 
      "type":"home", 
      "name":"[email protected]" 
     }, 
     { 
      "type":"work", 
      "name":"[email protected]" 
     } 
    ] 
} 

我需要將json轉換爲xml,反之亦然。然而,雖然上面是一個有效的JSON,當我將其轉換爲XML它不是有效的?我錯過了什麼,或者這是正常的?

+0

您正在使用哪個庫進行轉換,並顯示哪個錯誤? –

回答

21

JSON文檔的最外層級別是「對象」(大括號)或「數組」(方括號)。

任何將JSON轉換爲XML的軟件必須協調它們是具有不同規則的不同數據模型的事實。不同的轉換工具以不同的方式處理這些差異。

+2

你有這個規範的參考嗎?我無法在任何地方驗證。看起來,任何格式正確的元素(數組,對象,字符串,數字等)在技術上都是有效的JSON根元素,儘管前兩個元素是唯一可以有子元素的元素。 – GrayWizardx

+7

實際上有兩種不同的JSON規範。 RFC 4627要求JSON文本是對象或數組。 ECMA-262第5版第15.12節沒有強加此限制。 –

+1

[RFC 7159,第2節「JSON語法」](https://tools.ietf.org/html/rfc7159#section-2)似乎刪除了此限制,現在允許任何值作爲「根」。 –

2

這是正常的,json和xml沒有相同的規則。您可以將根部括號「{」和「}」轉換爲根元素以確保沒有轉換問題