2011-06-30 13 views
53

क्या JSON इन सब का इलाज करता है? या वे इंटीग्रर्स और बूलियन का मिश्रण हैं?JSON मान 1 या 0 - int या बूलियन

var data = 
{ 
    "zero" : 0, 
    "one" : 1, 
    "false" : 0, 
    "true" : 1, 
    "0" : false, 
    "1" : true 
} 
+4

क्या आपके पास मूल्य हैं? खैर, संख्या प्रकार है, और बूलियन प्रकार भी है। इसलिए, वे मान समान नहीं हैं। –

+7

बीटीडब्ल्यू, 'सत्य' और 'झूठा' आरक्षित शब्द हैं, इसलिए आप संपत्ति मूल्यों को पुनर्प्राप्त करने के लिए डॉट-नोटेशन का उपयोग नहीं कर पाएंगे। उदाहरण के लिए, 'data.zero'' 0' देता है, लेकिन 'data.false' एक पार्स त्रुटि (कुछ ब्राउज़रों में) फेंकता है (' डेटा ['false'] 'काम करेगा (= वापसी '0'))। –

उत्तर

63

JSON डेटा स्थानांतरित करने के लिए एक प्रारूप है।
इसमें समानता की कोई धारणा नहीं है।

JSON पार्सर्स बूलियन और संख्याओं को अलग-अलग प्रकार के रूप में मानें।

+49

इस उत्तर को और अधिक स्पष्ट रूप से समझाया जा सकता था, इस प्रकार: * "फिल, आप जेएसओएन का जिक्र करते हैं, जो एक प्रारूप है; जेएसओएन पार्सर्स के बारे में पूछने का मतलब क्या है। वास्तव में, जेएसओएन पार्सर्स ... ब्ला ब्लाह।" * जो लोग शीर्ष स्पष्टीकरणकर्ता हैं वे हमेशा हास्य, हल्के कट्टरपंथी, विनोदी उलटा सीधापन, आश्चर्यजनक उद्घाटन सुराग, और वास्तव में किसी भी प्रकार की स्टाइलिस्ट जुम्बिट, पूर्ण, कुल, स्पष्टीकरण शक्ति के लिए व्यापार करते हैं। एस, मैं आपके जैसे एक युवा व्यक्ति को विंस्टन चर्चिल के लेखन के लिए निर्देशित करता हूं - आप * मेरा प्रारंभिक जीवन * का आनंद लेंगे, जो मास्टर भाषा का उदाहरण है। चीयर्स – Fattie

+8

इस उत्तर में यह शामिल है कि इसमें क्या शामिल होना चाहिए, और कोई बेकार क्रूर नहीं है। असल में, मैंने इसे छोटा कर दिया होगा * यह तय करने के लिए पार्सर पर है *। –

+21

क्या एक व्यर्थ उत्तर है - और यह भी गलत है क्योंकि वास्तव में एक आधिकारिक [JSON विनिर्देश] (http://www.json.org) है जो दिखाता है कि 'सत्य' और 'झूठी' अक्षर संख्याएं संख्याओं से अलग हैं। कोई भी पार्सर जो उस भेद को बनाने में असफल रहा वह JSON पार्सर नहीं है। –

83

मूल्य true और false वास्तविक बूलियन मान हैं, शेष पूर्णांक हैं। अधिक के लिए http://json.org/ देखें।

+3

json.org का लिंक यहां उपयोगी है। मैं यह प्रश्न देखने के लिए आया कि क्या JSON मूल्यों के चारों ओर उद्धरणों का उपयोग सत्य और गलत है। –

+14

उन लोगों की सहायता करने के लिए जो इस पोस्ट को एक ही जानकारी की तलाश में हैं, उत्तर "नहीं" है। जेएसओएन में 'सत्य' और 'झूठी' मानों के चारों ओर कोई उद्धरण नहीं है। –

7

जैसा कि बताया गया है, JSON स्तर पर, 0 और झूठे समान नहीं हैं; डेटा प्रकार बूलियन बनाम संख्या हैं। लेकिन जेएसओएन प्रोसेसिंग लाइब्रेरी रूपांतरण करने का विकल्प चुन सकते हैं; विशेष रूप से उन भाषाओं/प्लेटफॉर्म पर जिनके पास देशी बुलियन प्रकार नहीं है, उदाहरण के लिए। उस स्थिति में, एक और प्रतिनिधित्व का उपयोग किया जा सकता है (खाली स्ट्रिंग या 0 झूठी के लिए)।

इसके अलावा, यह भी संभव है कि प्रसंस्करण पुस्तकालय प्रकारों को सहबद्ध कर सकें: जैसे कि यदि एक बूलियन मान अपेक्षित है, तो कुछ संख्या/स्ट्रिंग मान (या JSON 'null' टोकन) को इसके बजाय स्वीकार किया जा सकता है। विभिन्न भाषाओं पर डेटा प्रकार विकल्पों पर मतभेदों के कारण यह काफी आम है।

23

मैं सच/गलत के बजाय 0/1 का उपयोग करना पसंद करता हूं, क्योंकि 0/1 केवल 1 बाइट का उपभोग करता है जबकि सत्य/गलत 4/5 बाइट्स का उपभोग करता है।

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