javascript - जावास्क्रिप्ट JSON सरणी का विश्लेषण कैसे करें




extjs (5)

आपको ExtJs में डेटास्टोर और प्रॉक्सी का उपयोग करना चाहिए। इसके बहुत सारे examples हैं, और JSON रीडर स्वचालित रूप से आपके द्वारा निर्दिष्ट मॉडल में JSON संदेश को पार करता है।

ExtJs का उपयोग करते समय मूल जावास्क्रिप्ट का उपयोग करने की कोई आवश्यकता नहीं है, सब कुछ अलग है, आपको सब कुछ ठीक करने के लिए ExtJs तरीकों का उपयोग करना चाहिए। वहां दस्तावेज़ों को ध्यान से पढ़ें, यह अच्छा है।

वैसे, इन उदाहरणों में सेन्चा टच (विशेष रूप से v2) भी है, जो एक्सटीजे के समान कोर कार्यों पर आधारित है।

मैं सर्वर से JSON संदेश प्राप्त करने के लिए सेन्चा टच (ExtJS) का उपयोग कर रहा हूं। मुझे प्राप्त संदेश यह है:

{
"success": true,
"counters": [
    {
        "counter_name": "dsd",
        "counter_type": "sds",
        "counter_unit": "sds"
    },
    {
        "counter_name": "gdg",
        "counter_type": "dfd",
        "counter_unit": "ds"
    },
    {
        "counter_name": "sdsData",
        "counter_type": "sds",
        "counter_unit": "   dd       "
    },
    {
        "counter_name": "Stoc final",
        "counter_type": "number    ",
        "counter_unit": "litri     "
    },
    {
        "counter_name": "Consum GPL",
        "counter_type": "number    ",
        "counter_unit": "litri     "
    },
    {
        "counter_name": "sdg",
        "counter_type": "dfg",
        "counter_unit": "gfgd"
    },
    {
        "counter_name": "dfgd",
        "counter_type": "fgf",
        "counter_unit": "liggtggggri     "
    },
    {
        "counter_name": "fgd",
        "counter_type": "dfg",
        "counter_unit": "kwfgf       "
    },
    {
        "counter_name": "dfg",
        "counter_type": "dfg",
        "counter_unit": "dg"
    },
    {
        "counter_name": "gd",
        "counter_type": "dfg",
        "counter_unit": "dfg"
    }

    ]
}

मेरी समस्या यह है कि मैं इस JSON ऑब्जेक्ट को पार्स नहीं कर सकता ताकि मैं प्रत्येक काउंटर ऑब्जेक्ट्स का उपयोग कर सकूं।

मैं इस तरह की कोशिश करने की कोशिश कर रहा हूं:

var jsonData = Ext.util.JSON.decode(myMessage);
for (var counter in jsonData.counters) {
     console.log(counter.counter_name);
 }

मैं क्या गलत कर रहा हूं ? धन्यवाद!


जावास्क्रिप्ट को स्ट्रिंग के लिए जेएसओएन पार्स में बनाया गया है, जो मुझे लगता है कि आपके पास क्या है:

var myObject = JSON.parse("my json string");

अपने उदाहरण के साथ इसका उपयोग करने के लिए:

var jsonData = JSON.parse(myMessage);
for (var i = 0; i < jsonData.counters.length; i++) {
    var counter = jsonData.counters[i];
    console.log(counter.counter_name);
}

यहां एक कामकाजी उदाहरण है

संपादित करें : लूप के आपके उपयोग में एक गलती है (मैंने इसे अपने पहले पढ़ने पर याद किया, स्पॉट के लिए @Evert पर क्रेडिट)। फॉर-इन लूप का उपयोग करके var को वर्तमान लूप का प्रॉपर्टी नाम माना जाएगा, न कि वास्तविक डेटा। सही उपयोग के लिए ऊपर मेरे अद्यतन पाश देखें

महत्वपूर्ण : JSON.parse विधि पुरानी पुरानी ब्राउज़रों में काम नहीं JSON.parse - इसलिए यदि आप किसी भी प्रकार के इंटरनेट कनेक्शन को झुकाव के माध्यम से अपनी वेबसाइट उपलब्ध कराने की योजना बनाते हैं, तो यह एक समस्या हो सकती है! यदि आप वास्तव में रुचि रखते हैं, तो यहां एक समर्थन चार्ट है (जो मेरे सभी बक्से लगाता है)।


मेरे लिए बिंदु के लिए कुछ और ..

var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';  
var contact = JSON.parse(jsontext);  
document.write(contact.surname + ", " + contact.firstname);  
document.write(contact.phone[1]);  
// Output:  
// Aaberg, Jesper  
// 555-0100

संदर्भ: https://docs.microsoft.com/en-us/scripting/javascript/reference/json-parse-function-javascript कार्यक्षमता- https://docs.microsoft.com/en-us/scripting/javascript/reference/json-parse-function-javascript


यह मेरा जवाब है,

<!DOCTYPE html>
<html>
<body>
<h2>Create Object from JSON String</h2>
<p>
First Name: <span id="fname"></span><br> 
Last Name: <span id="lname"></span><br> 
</p> 
<script>
var txt = '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';

//var jsonData = eval ("(" + txt + ")");
var jsonData = JSON.parse(txt);
for (var i = 0; i < jsonData.employees.length; i++) {
    var counter = jsonData.employees[i];
    //console.log(counter.counter_name);
    alert(counter.firstName);
}

</script>
</body>
</html>

सुनिश्चित नहीं है कि मेरा डेटा बिल्कुल मेल खाता है लेकिन मेरे पास JSON ऑब्जेक्ट्स के सरणी की सरणी थी, जिसे पृष्ठों का उपयोग करते समय jQuery फॉर्मबिल्डर से निर्यात किया गया था।

उम्मीद है कि मेरा जवाब किसी भी व्यक्ति की मदद कर सकता है जो इस प्रश्न पर ठोकर खा रहा है, जो कि मेरे पास एक समस्या का उत्तर ढूंढ रहा है।

डेटा कुछ हद तक इस तरह दिखता था:

var allData = 
[
    [
        {
            "type":"text",
            "label":"Text Field"
        }, 
        {
            "type":"text",
            "label":"Text Field"
        }
    ],
    [
        {
            "type":"text",
            "label":"Text Field"
        }, 
        {
            "type":"text",
            "label":"Text Field"
        }
    ]
]

मैंने इसका विश्लेषण करने के लिए क्या किया था बस निम्नलिखित करना था:

JSON.parse("["+allData.toString()+"]")






extjs