2012-05-03 10 views
17

क्या JSON को xml मामले में रूट तत्व की आवश्यकता होती है। जहां तक ​​मुझे पता है कि यह एक वैध जेसन स्ट्रिंग है।JSON रूट तत्व

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

मुझे जेसन को एक्सएमएल को इसके विपरीत रूपांतरित करने की आवश्यकता है। हालांकि हालांकि उपरोक्त एक वैध जेसन है जब मैं इसे एक्सएमएल में परिवर्तित करता हूं तो यह मान्य नहीं है? क्या मुझे कुछ याद आ रहा है या यह सामान्य है?

+0

रूपांतरण के लिए आप किस पुस्तकालय का उपयोग कर रहे हैं और यह किस त्रुटि को दिखा रहा है? –

उत्तर

21

JSON दस्तावेज़ का बाहरीतम स्तर या तो "ऑब्जेक्ट" (घुंघराले ब्रेसिज़) या एक है "सरणी" (वर्ग ब्रैकेट)।

जेएसओएन को एक्सएमएल में परिवर्तित करने वाला कोई भी सॉफ्टवेयर इस तथ्य को सुलझाने के लिए है कि वे विभिन्न नियमों के साथ अलग-अलग डेटा मॉडल हैं। विभिन्न रूपांतरण उपकरण इन मतभेदों को विभिन्न तरीकों से संभालते हैं।

+2

क्या आपके पास इसके लिए एक कैनोलिक संदर्भ है? मैं कहीं भी मान्य नहीं कर सकता। ऐसा प्रतीत होता है कि किसी भी उचित स्वरूपित तत्व (सरणी, वस्तु, स्ट्रिंग, संख्या, आदि) तकनीकी रूप से एक वैध JSON रूट तत्व है, हालांकि पहले दो ही एकमात्र हैं जिनके बच्चे हो सकते हैं। – GrayWizardx

+7

दरअसल दो अलग-अलग JSON विनिर्देश हैं। आरएफसी 4627 को एक JSON टेक्स्ट को ऑब्जेक्ट या सरणी होने की आवश्यकता होती है। ईसीएमए -262, 5 वां संस्करण, धारा 15.12 इस प्रतिबंध को लागू नहीं करता है। –

+1

ऐसा लगता है कि [आरएफसी 715 9, सेक्शन 2 "जेएसओएन व्याकरण"] (https://tools.ietf.org/html/rfc7159#section-2) ने इस प्रतिबंध को हटा दिया है और अब किसी भी मान को "रूट" के रूप में अनुमति देता है। –

2

यह सामान्य है, जेसन और एक्सएमएल के पास समान नियम नहीं हैं। आप अपने मूल ब्रैकेट "{" और "}" को रूट तत्व में ट्रांसफर कर सकते हैं ताकि यह सुनिश्चित किया जा सके कि रूपांतरण समस्याएं नहीं हैं

संबंधित मुद्दे