मुझे लगता है कि चेसो के सवाल का सही जवाब यह है कि कार्यान्वयन ने दस्तावेज़ीकरण को पार किया। इसे अब कुंजी के रूप में एक स्ट्रिंग की आवश्यकता नहीं है, बल्कि कुछ और, जो या तो एक स्ट्रिंग (यानी उद्धृत) या (शायद) कुछ भी हो सकता है जिसे एक चर नाम के रूप में उपयोग किया जा सकता है, जिसका मुझे अनुमान होगा कि एक अक्षर से शुरू होता है, _ , या $, और केवल अक्षरों, संख्याओं, और $ और _ शामिल हैं।
मैं अगले व्यक्ति के लिए शेष को सरल बनाना चाहता था जो इस प्रश्न के साथ मेरे विचार के साथ दौरा करता था। यहाँ मांस है: जब के रूप में एक वस्तु कुंजी (! धन्यवाद Friedo)
ब्रेटन, बजाय "कुंजी" का "पहचानकर्ता" का उपयोग कर, लिखा इस्तेमाल किया
चर नाम JSON में अंतर्वेशित नहीं कर रहे हैं कि "अगर एक पहचानकर्ता एक आरक्षित शब्द होता है, इसे पहचानकर्ता के बजाए उस शब्द के रूप में व्याख्या किया जाता है।"यह सच हो सकता है, लेकिन मैं किसी भी मुसीबत के बिना इसे करने की कोशिश:
var a = {do:1,long:2,super:3,abstract:4,var:5,break:6,boolean:7};
a.break
=> 6
बारे में उद्धरण का उपयोग कर, क्वेंटिन लिखा था" ... लेकिन आप के लिए, जब तक [कुंजी नहीं है ] कुछ वर्ण (या वर्णों के संयोजन जो इसे एक कीवर्ड बनाते हैं) "
मुझे पता चला कि @ साइन (का उपयोग करके, मुझे लगता है कि कुछ भाग (कुछ वर्ण) सत्य हैं, वास्तव में, मुझे लगता है कि $ और _ हैं केवल वे वर्ण जो त्रुटि का कारण नहीं बनाते हैं):
var a = {[email protected]:1};
=> सिंटैक्स त्रुटि
var a = {"[email protected]":1};
a['[email protected]']
=> 1
लेकिन कीवर्ड के बारे में निक्षिप्त, जैसा कि मैंने ऊपर से पता चला है, नहीं सच है।
जो मैं चाहता था वह काम करता है क्योंकि उद्घाटन {और कोलन के बीच का पाठ, या बाद के गुणों के लिए कॉमा और कोलन के बीच एक ऑब्जेक्ट कुंजी बनाने के लिए एक अनिवार्य स्ट्रिंग के रूप में उपयोग किया जाता है, या जैसे फ्रिडो इसे डालता है, एक चर नाम अंतर्वेशित नहीं प्राप्त करता है:
var uid = getUID();
var token = getToken(); // Returns ABC123
var data = {uid:uid,token:token};
data.token
=> ABC123
क्या आप "JSON में" मतलब है की अनुमति है? यह "जेएसओएन" प्रोग्रामिंग भाषा की तरह दिखता है। –
@ ब्रूनो: आप एक्सएमएल के समान तरीके से बात कर सकते हैं ... और दुख की बात है कि कुछ लोग प्रोग्रामिंग भाषा के रूप में एक्सएमएल का उपयोग करने की कोशिश कर रहे हैं ... –
+1 ... यह एक असाधारण विरोधाभास जैसा प्रतीत होता है .. .. "उद्धरण के साथ" यह मानक JSON बनाता है, लेकिन 'eval()' (यानी जावास्क्रिप्ट) के साथ काम नहीं करेगा। – skaffman