JSON ऑब्जेक्ट्स को कैसे प्राप्त करें यदि इसके नाम में डॉट्स हैं?


108

मेरे पास एक बहुत ही सरल JSON सरणी है (कृपया "points.bean.pointsBase" ऑब्जेक्ट पर ध्यान दें ):

var mydata =   
{"list":  
  [  
    {"points.bean.pointsBase":  
      [  
        {"time": 2000, "caption":"caption text", duration: 5000},  
        {"time": 6000, "caption":"caption text", duration: 3000}  
      ]  
    }  
  ]  
};  

// Usually we make smth like this to get the value: 
var smth = mydata.list[0].points.bean.pointsBase[0].time; 
alert(smth); // should display 2000

लेकिन, दुर्भाग्य से, यह कुछ भी प्रदर्शित नहीं करता है।
जब मैं "points.bean.pointBase" को बदल देता हूं, तो इसमें बिना डॉट्स के एसएमएस करना नाम है - सब कुछ काम करता है!

हालाँकि, मैं इस नाम को डॉट्स के बिना किसी और चीज़ में नहीं बदल सकता, लेकिन मुझे एक मूल्य प्राप्त करने की आवश्यकता है ?!
क्या इसे पाने का कोई विकल्प है?

जवाबों:


215

आप क्या चाहते हैं:

var smth = mydata.list[0]["points.bean.pointsBase"][0].time;

जावास्क्रिप्ट में, आप जिस भी क्षेत्र का उपयोग कर सकते हैं। ऑपरेटर, आप फ़ील्ड नाम के स्ट्रिंग संस्करण के साथ [] का उपयोग कर सकते हैं।


27

जावास्क्रिप्ट में, ऑब्जेक्ट गुण के साथ पहुँचा जा सकता है। ऑपरेटर [] का उपयोग करके अनुक्रमणिका सरणी अनुक्रमण के साथ। अर्थात। object.propertyके बराबर हैobject["property"]

यह काम कर जाना चाहिए

var smth = mydata.list[0]["points.bean.pointsBase"][0].time;


4

यदि json ऑब्जेक्ट कुंजी / नाम में डॉट है ......! पसंद

var myJson = {"my.name":"vikas","my.age":27}

से आप की तरह पहुँच सकते हैं

myJson["my.name"]
myJson["my.age"]

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.