2011-08-03 22 views
20

मेरे JSON ऑब्जेक्ट का मूल्यांकन साइन इन प्रतीक पर: इस चर my_json कहा जाता हैपार्सिंग JSON w/@ यह (arobase)

{ "@io": IO, "@type": XXX } 

, मैं कैसे XXX की @type मूल्य उपयोग करते हैं? मैंने [email protected] की कोशिश की, लेकिन यह त्रुटियां दे रहा है। मदद की सराहना की। धन्यवाद,

निक

+0

मेरा पहला झुकाव एक पार्सिंग को आपके विश्लेषण पर पहले HTTP प्रतिक्रिया पर प्रतिस्थापित करना होगा। हो सकता है कि "@" के सभी उदाहरणों को "at_" या कुछ के साथ बदलें। –

+1

मुझे समझ में नहीं आ रहा है कि इस सवाल को क्यों वोट दिया गया है, और चूंकि बहुत से लोग आश्चर्य करते हैं कि ऑब्जेक्ट प्रॉपर्टी या विधि का उपयोग कैसे किया जा सकता है, जिसमें अजीब नामकरण है, या जब उनके पास केवल स्ट्रिंग में संपत्ति का नाम होता है, तो मैं ऊपर उठूंगा। – JAAulde

+0

क्योंकि मुझे विश्वास है कि इस मंच में कई बार इसका उत्तर दिया गया है http://stackoverflow.com/questions/1710103/accessing-json-fields-with-weird-characters –

उत्तर

30

उपयोग वर्ग कोष्ठक एक तार के साथ अंकन:

var XXXValue = my_json['@type']; 

एक ही है जब आप एक चर में एक संपत्ति नाम इस्तेमाल किया जा सकता। अपने उदाहरण का उपयोग करके:

var propertyName = '@type'; 
var XXXValue = my_json[propertyName]; 
+1

एक जेसन फ़ाइल के अंदर @ प्रतीक का उद्देश्य क्या है? क्या इसका जसन संदर्भ के अंदर कोई अतिरिक्त अर्थ है? –

+1

@ डेविड जैसे स्ट्रिंग में, इसका कोई प्रश्न (JSON, JS, आदि) में कोई विशिष्ट अर्थ नहीं है। मुझे नहीं पता कि ओपी की तरह चाबियाँ क्यों हैं, लेकिन चर्चा की गई प्रौद्योगिकियों में इसका कोई महत्व नहीं है। – JAAulde

+1

काफी पुराना सवाल है लेकिन यह Google खोजों में आता है। JSON में @ प्रतीक JSON-LD है (लिंक किए गए डेटा के लिए JSON)। http://en.wikipedia.org/wiki/JSON-LD – smoore4

1

यदि यह मूल्यांकन समाप्त होता है तो आप ऑब्जेक्ट ले सकते हैं और शायद इसे कुंजी से पकड़ सकते हैं।

यानी obj ["@ type"]। लेकिन कुछ थोड़ा सा लगता है।

8

जैसा कि आपने पाया है, आप किसी जावास्क्रिप्ट चर नाम में @ प्रतीक का उपयोग नहीं कर सकते, [email protected] अमान्य है।

आपके लिए अच्छी खबर यह है कि आप सरणी सदस्यता के रूप में अपने चर का उपयोग कर सकते हैं। आप इसे इस तरह करेंगे:

my_json["@type"] 

आशा है कि मदद करता है।

+1

मुझे सही करें अगर मैं गलत हूं, लेकिन मुझे नहीं लगता कि आपको यहां "सरणी" शब्द का उपयोग करना चाहिए। –

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