JSON ऑब्जेक्ट को जावास्क्रिप्ट सरणी में कैसे बदलें?


86

मुझे JSON ऑब्जेक्ट स्ट्रिंग को जावास्क्रिप्ट सरणी में बदलने की आवश्यकता है।

यह मेरा JSON ऑब्जेक्ट:

{"2013-01-21":1,"2013-01-22":7}

और मेरे पास है:

var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');

data.addRows([
    ['2013-01-21', 1],
    ['2013-01-22', 7]
]);

इसे कैसे प्राप्त किया जा सकता है?


2
धोखा ->string.split(',')
adeneo

2
@adeneo वह सरणी में सरणी चाहता है, आपकी विधि के साथ यह सिर्फ एक सरणी होगी
बिक्रीएक्सच

जवाबों:


86
var json_data = {"2013-01-21":1,"2013-01-22":7};
var result = [];

for(var i in json_data)
    result.push([i, json_data [i]]);


var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows(result);

http://jsfiddle.net/MV5rj/


मैं कुछ इस तरह से चाहूंगा: 2013-01-21 ==> 1 2013-01-22 ==> 7 (
हैशटेबल की

@ user1960311 अब आपके पास क्या है
इयान

57

यदि आपके पास एक अच्छी तरह से गठित JSON स्ट्रिंग है, तो आपको ऐसा करने में सक्षम होना चाहिए

var as = JSON.parse(jstring);

मैं AJAX के माध्यम से सरणियों को स्थानांतरित करते समय यह सब करता हूं।


3
JSON.parse () के लिए +1। इस बिंदु पर इसका व्यापक ब्राउज़र समर्थन है: caniuse.com/json
Siliconrockstar

17
यह एक वस्तु लौटाने लगता है, लेकिन सरणी नहीं। सही ?
फेरू

2
यह आपके द्वारा क्रमबद्ध वस्तुओं का जो भी वस्तु या संग्रह लौटाएगा।
22

IMO इस बेहतर ansver फिर एक सक्रिय किया।
सिम्हुमेलेको

32

मान लीजिए आपके पास:

var j = {0: "1", 1: "2", 2: "3", 3: "4"};

आप मान प्राप्त कर सकते हैं (व्यावहारिक रूप से सभी ब्राउज़र संस्करणों में समर्थित):

Object.keys(j).map(function(_) { return j[_]; })

या केवल:

Object.values(j)

आउटपुट:

["1", "2", "3", "4"]

7
जो कोई भी इसे पढ़ता है ... इसके बजाय Object.values ​​का उपयोग करें !
निको वैन बेले

1
बस याद रखें कि ऑब्जेक्ट.व्यूल्स () IE के किसी भी संस्करण पर समर्थित
एक दोस्त


16

इससे समस्या हल हो जाएगी:

const json_data = {"2013-01-21":1,"2013-01-22":7};

const arr = Object.keys(json_data).map((key) => [key, json_data[key]]);

console.log(arr);

या Object.entries () विधि का उपयोग कर :

console.log(Object.entries(json_data));

दोनों मामलों में, आउटपुट होगा:

/* output: 
[['2013-01-21', 1], ['2013-01-22', 7]]
*/

3

आप इस के रूप में एक सरणी में ऑब्जेक्ट आइटम सम्मिलित कर सकते हैं

let obj = {
  '1st': {
    name: 'stackoverflow'
  },
  '2nd': {
    name: 'stackexchange'
  }
};
 
 let wholeArray = Object.keys(obj).map(key => obj[key]);
 
 console.log(wholeArray);


-6

इस के रूप में सरल!

var json_data = {"2013-01-21":1,"2013-01-22":7};
var result = [json_data];
console.log(result);

1
यह इसके अंदर एक ऑब्जेक्ट के साथ एक सरणी बनाता है (json डेटा ऑब्जेक्ट)।
मिका सुंदरलैंड

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