2011-09-30 14 views
7

मैं जावास्क्रिप्ट में किसी जेसन ऑब्जेक्ट में किसी फ़ील्ड तक पहुंचने का प्रयास कर रहा हूं जिसमें कुंजी '*' है। jsonstring इस तरह दिखता है:JSON - '*' तारांकन नामक एक्सेस फ़ील्ड

{"parse": 
{"text": 
    {"*":"text i want to access"} 
} 
} 

myObject.parse.text प्राप्त करना चाहते हैं * काम नहीं करता है, न तो करता है myObject.parse.text [0]।। मैंने अब एक घंटे की खोज की है, लेकिन किसी भी संकेत को पता चला है कि तारांकन का विशेष अर्थ है। यदि मैं सिर्फ पूरे पेड़ को पार करता हूं और स्ट्रिंग तुलना को ला लाता हूं 'if (key == "*")' मैं वह पाठ प्राप्त कर सकता हूं जिसे मैं पुनर्प्राप्त करना चाहता हूं, लेकिन मैं सीधे इस क्षेत्र तक पहुंच बनाना चाहता हूं। क्या फ़ील्ड तक पहुंचने का कोई तरीका नहीं है?

+9

जो कोई भी तैयार किया गया है कि JSON स्ट्रिंग थोड़ा चारों ओर थप्पड़ मारा जाना चाहिए । –

+2

आपको यह विकिपीडिया एपीआई के साथ मिलता है, उदाहरण के लिए http://de.wikipedia.org/w/api.php?action=parse&page=Robbie_Williams&format=json&prop=text§ion=0 – simon

+0

यह सुंदर नहीं है, लेकिन मैं इसे देख सकता हूं कुछ प्रकार के फ्रंट एंड अनुवाद मॉड्यूल में समझें। जब एक निश्चित स्ट्रिंग को किसी निश्चित भाषा के लिए मौजूद नहीं किया जाता है तो एक मानक स्ट्रिंग डाली जानी चाहिए। – iMe

उत्तर

11
json.parse.text["*"] 

ऑब्जेक्ट सदस्य के लिए भाग्यशाली नाम।

+1

धन्यवाद, यह भी काम करता है। यह एक अजीब नाम है, इसे मीडियाविकि एपीआई 'पार्स' फ़ंक्शन द्वारा वापस किया जाता है। – Peter

5

parse.text पर सूचकांक ऑपरेटर का उपयोग का प्रयास करें:

var text = myObject.parse.text['*'] 
+1

बहुत बहुत धन्यवाद, यह काम करता है! – Peter

+0

@genesis मैं आपके संपादन को समझ नहीं पा रहा हूं? कोई कारण? – Fox32

+0

@ फॉक्स 32: हाँ। मैंने आपकी पोस्ट को गलती से घटा दिया था लेकिन लंबे समय के बाद इसे देखा – genesis

5

कोशिश आप कर सकता है:

var json = {"parse": 
{"text": 
    {"*":"text i want to access"} 
} 
} 

alert(json.parse.text['*']); 
+1

बहुत बहुत धन्यवाद, यह काम करता है! – Peter

2

उपयोग करने के लिए

var value = object.parse.text["*"]; 
संबंधित मुद्दे