में रूट नोड्स मुझे दो वेब ऐप्स के बीच संचार परिभाषित करने के साथ काम सौंपा गया है। मैंने इसके लिए JSON का उपयोग करने का निर्णय लिया है। JSON में रूट नोड कितना आम है?JSON
मान लें कि हमारे पास कार वस्तु है। यह "कार" रूट नोड होने के साथ JSON है:
{"Car": {
"Make":"Mustang",
"YearBuilt":"1999"}}
तो अब मान लीजिए कि मैं एक टायर वस्तु है और जब से हम होने जड़ नोड्स पर मानकीकरण, यह एक भी होना आवश्यक है करते हैं।
{"Tire": {"Make": "Brirdgestone", "Size":"15"}}
मूल कार ऑब्जेक्ट में टायर ऑब्जेक्ट JSON को एकीकृत करना यह दिखाता है कि यह कितना अनावश्यक हो सकता है।
{"Car": { "Make":"Mustang",
"YearBuilt":"1999",
"Tires": "[{"Tire": {"Make": "Brirdgestone", "Size":"15"}},
{"Tire": {"Make": "Brirdgestone", "Size":"15"}},
{"Tire": {"Make": "Bridgestone", "Size":"15"}},
{"Tire": {"Make": "Brirdgestone", "Size":"15"}}
]}}
तो PHP में धारावाहिक, पहले टायर के मेकअप $object->Car->Tires[0]->Tire->Make
होगा। रूट नोड की वजह से वहां अतिरिक्त टायर स्तर है।
यदि टायर में रूट नोड नहीं था तो कोड बहुत पतला हो सकता है।
{"Car": { "Make":"Mustang",
"YearBuilt":"1999",
"Tires": "[{ {"Make": "Bridgestone", "Size":"15"}},
{"Make": "Brirdgestone", "Size":"15"}},
{"Make": "Brirdgestone", "Size":"15"}},
{"Make": "Brirdgestone", "Size":"15"}}]}}
पीएचपी में, वहाँ कम भ्रम है कम अतिरेक है क्योंकि: पहले टायर के मेकअप से $object->Car->Tires[0]->Make
कहा जाता है कि वहाँ एक रूट नोड नहीं होने से कुछ भी बुरा है? मुझे रूट नोड होना पसंद है क्योंकि यह कक्षा के वर्ग को पसंद करता है, लेकिन अनावश्यक स्तर मुझे बहुत खराब करते हैं और अधिक जटिल बनाते हैं।
मैं सहमत हूं। रूट नोड्स उपभोग करने वाले ऐप कोड को अनावश्यक रूप से वर्बोज़ बना देगा। – Steve
कूल, बहुत बहुत धन्यवाद। मैंने एक क्षेत्र के बारे में सोचा जहां यह महत्वपूर्ण होगा। यदि JSON दर्पण और XML दस्तावेज़, आपको कम से कम मुख्य ऑब्जेक्ट पर एक जोड़ना चाहिए क्योंकि XML में, आपको रूट तत्व की आवश्यकता है। एक सहयोगी ने यह भी बताया कि जेएसओएनपी कॉलबैक के लिए यह महत्वपूर्ण है और अगर मैं एपीआई बना रहा तो बेहतर संरचना होगी। उदाहरण के लिए, याहू और eBay एपीआई परिणाम परिणाम नोड के चारों ओर सब कुछ लपेटें। यह पार्सर्स को अनुमति देता है जो किसी ऑब्जेक्ट प्रकार पर ResultSet को बाध्य करने के लिए प्रकारों की देखभाल करते हैं। –
खैर, मुझे यकीन है कि आप UseCases के बारे में सोच सकते हैं जहां यह आसान हो सकता है, लेकिन फिर, जब भी मैंने अपने ऐप्स में JSON का उपयोग किया, तो मुझे कॉलबैक था जो उन्हें पता था कि उन्हें प्राप्त डेटा को कैसे संभालना है, उदा। example.com/cars/find/id/123 कार डेटा वापस कर देगा और मेरा कॉलबैक उन्हें बनाएगा। – Gordon