2012-12-10 12 views
21

मैं इस JSON कोड में आया था। मैंने देखा कि यह undefined मान का उपयोग करता है। इस मूल्य प्रकार के बारे में मुझे और जानकारी कहां मिल सकती है?JSON अपरिभाषित मान प्रकार

tracks:[ 
    (  { 
     codec:"h264", 
     language:undefined, 
     id:1, 
     bitrate:785236, 
     content:"video" 
    }  ), 
    (  { 
     codec:"aac", 
     language:undefined, 
     id:2, 
     bitrate:75969, 
     content:"audio" 
    }  ) 
    ], 
+2

क्या आप वाकई मान्य JSON है? कोष्ठक (पहली बार मुरलीप्रसाद द्वारा नोट किया गया) कम से कम संदिग्ध लग रहा है। –

+0

यह मान्य JSON नहीं है। अभिभावकों की अनुमति नहीं है। न तो शाब्दिक 'अपरिभाषित' है। 'अपरिभाषित' जावास्क्रिप्ट में एक मान है: http://www.ecma-international.org/ecma-262/5.1/#sec-4.3.9 –

+0

क्या आप निश्चित हैं कि JSON है? ऐसा लगता है कि एक [ऑब्जेक्ट शाब्दिक] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects) का एक स्निपेट भी है। –

उत्तर

46
  • अपरिभाषित एक मान्य JSON मूल्य, भले ही यह जावास्क्रिप्ट में मान्य है नहीं है। the official json standard (ECMA-404, धारा 5) से:

    एक JSON मूल्य एक वस्तु, सरणी, संख्या, स्ट्रिंग, सच, झूठे, या अशक्त हो सकता है।

  • json के लिए, का उपयोग अशक्त के बजाय अपरिभाषित: { "something": null }

+4

है यदि आप एक मान को अनिर्धारित करना चाहते हैं, तो इसे पूरी तरह से JSON से छोड़ दें। इस तरह, जब आप पार्स के बाद इसे पढ़ने की कोशिश करते हैं, तो यह अनिर्धारित होगा। – totymedli

+1

लेकिन यह मानता है कि आपको पूर्ण ज्ञान है कि प्रतिक्रिया कैसा दिखना चाहिए। यदि आप सर्वर और क्लाइंट दोनों का निर्माण कर रहे हैं तो यह ठीक है, लेकिन अक्सर ऐसा नहीं होता है। – Ringo

+0

निश्चित रूप से। यह एक इष्टतम समाधान नहीं है, केवल जब आप (किसी भी कारण से) को एक अनिर्धारित मूल्य वापस करना होगा, तो केवल एक कामकाज। – totymedli

4

undefined एक विशेष प्रकार का है, जहां यह बस पता चलता है कि चर language आरंभ नहीं किया है या हो सकता है यह अभी तक परिभाषित नहीं किया गया है।

javascript में null बस एक मूल्य के अभाव को इंगित करता है, और यह भी संख्या और तार के साथ-साथ objects.The undefined मूल्य भी मूल्य के अभाव का प्रतिनिधित्व करता है के लिए "कोई मूल्य नहीं" इंगित करने के लिए इस्तेमाल किया जा सकता है, यह का मूल्य है वैरिएबल जिन्हें प्रारंभ नहीं किया गया है और जब आप object प्रॉपर्टी या array तत्व से प्राप्त होते हैं तो मान undefined एक पूर्वनिर्धारित वैश्विक चर है जिसे अपरिभाषित मान में प्रारंभ किया गया है।

null और undefined इन मूल्यों का संपत्ति या विधि का उपयोग करने के . या [] का उपयोग कर एक TypeError का कारण बनता है किसी भी गुण या methods.In तथ्य नहीं है,।

+0

किसी वैरिएबल में परिभाषित मान रखने से यह अनिर्धारित नहीं होता है। एकमात्र विकल्प यह है कि _undefined_ मान उस संपत्ति में संग्रहीत किया गया था या यह कि JSON स्वचालित रूप से जेनरेट नहीं हुआ था। –

+0

भाषा परिवर्तनीय डेटा जो कि –

+0

भाषा-रहित, "जो अनिर्धारित है" को पूरे पिछले वाक्य (यदि कोई गुम अल्पविराम है) या "भाषा परिवर्तनीय" से जुड़ा हुआ है, न कि "डेटा" (जो आगे है) को परिभाषित करता है। आपको गलत समझा गया है, मुझे विश्वास है। –

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