मेरे पास var obj = [{"PRODUCT_ID":"P01","M01":1,"M02":2, "M03": null}] के रूप में ऑब्जेक्ट है। मैं कुंजी प्राप्त करना चाहता हूं और इस नमूने को महत्व देना चाहता हूं

PRODUCT_ID is P01
M01 is 1
M02 is 2
M03 is null

मैं अनुसरण के रूप में प्रयास करता हूं

for (var key in obj) {
  if (obj.hasOwnProperty(key)) {
    console.log(key + " is " + obj[key]);
  }
}

यह काम नहीं कर रहा है, यह प्रारूप के साथ गलत दिखा रहा है।

0 is [
1 is {
2 is "
3 is P
4 is R
5 is O
6 is D
...etc

मैं इसके लिए जावास्क्रिप्ट का उपयोग कर रहा हूं। अगर शायद जेसन में कनवर्ट कर सकते हैं और इसे दिखा सकते हैं।

0
Brian Crist 3 अप्रैल 2018, 15:26

6 जवाब

आपका कोड लगभग सही है। लेकिन जैसा कि आपके पास डेटा ऐरे ऑब्जेक्ट नहीं है, आपको इच्छा आउटपुट प्राप्त करने के लिए ऑब्जेक्ट को लूप करने की आवश्यकता है।

अनुमान लगाना OP में है:

var obj = '[{"PRODUCT_ID":"P01","M01":1,"M02":2, "M03": null}]';
    for (var key in obj) {
         console.log(key + " is " + obj[key]);
    }
//var obj = [{"PRODUCT_ID":"P01","M01":1,"M02":2, "M03": null}]
var obj = '[{"PRODUCT_ID":"P01","M01":1,"M02":2, "M03": null}]';
obj = JSON.parse(obj);
for (var key in obj) {
  for (var k in obj[key]){
     console.log(k + " is " + obj[key][k]);
    }
}

वैकल्पिक:

//var obj = [{"PRODUCT_ID":"P01","M01":1,"M02":2, "M03": null}]
var obj = '[{"PRODUCT_ID":"P01","M01":1,"M02":2, "M03": null}]';
obj = JSON.parse(obj);
obj.map(e => Object.entries(e).map(([k, v]) => console.log(k, "is", v)))
0
atiq1589 3 अप्रैल 2018, 13:06

देखें Object.entries() , Array.prototype.map() , और Template Literals अधिक जानकारी के लिए .

// Input.
const input = [{"PRODUCT_ID":"P01","M01":1,"M02":2, "M03": null}]

// Output.
input.map(x => Object.entries(x).map(([key, value]) => console.log(`${key} is ${value}\n`)))
0
Arman Charan 3 अप्रैल 2018, 12:42

यहां बात यह है कि आप किसी वस्तु की तरह एक सरणी का इलाज कर रहे हैं। इसके लिए अपना कोड बदलें:

for(x=0;x <obj.length;x++){
    // Here you have each object of your array.

     var json = obj[x];
     var arrayOfKeys = Object.keys (json);

    //other code.
 }
0
michaelitoh 3 अप्रैल 2018, 12:40

अपने ऑब्जेक्ट में कुंजियों तक पहुँचने के लिए Object.keys() विधि का उपयोग करें और फिर बस कुंजी को उसके मान के साथ संयोजित करें।

यह सबसे सुंदर समाधान नहीं है, लेकिन यह आपको समझने में मदद करेगा।

var obj = '[{"PRODUCT_ID":"P01","M01":1,"M02":2, "M03": null}]' //string
obj = JSON.parse(obj);
console.log(Object.keys(obj[0])) //so that you can see what this does

obj.forEach(object => {
   Object.keys(object).forEach(key => {
       $("#values").append($("<p>"+key +" is "+ object[key]+"</p>"));  
   });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="values">
  
</div>
1
Aniruddha Gohad 3 अप्रैल 2018, 12:49

समस्या यह है कि आप obj से पूछताछ कर रहे हैं, जबकि वास्तविक obj obj[0] है। obj 1 तत्व के साथ एक सरणी है। ये कोशिश करें

var obj = [{"PRODUCT_ID":"P01","M01":1,"M02":2, "M03": null}];

for (var key in obj[0]) {
  if (obj[0].hasOwnProperty(key)) {
    console.log(key + " is " + obj[0][key]);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
1
Scaramouche 3 अप्रैल 2018, 12:29