JSON 객체를 JavaScript 배열로 변환하는 방법은 무엇입니까?


86

JSON 개체 문자열을 JavaScript 배열로 변환해야합니다.

이 내 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 그는 당신의 방법이 될 것입니다, 하나 개의 배열 배열의 배열을 원한다
salexch

답변:


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
+1 JSON.parse (). 이 시점에서 광범위한 브라우저 지원을 제공합니다. caniuse.com/json
siliconrockstar

17
이것은 배열이 아닌 Object를 반환하는 것 같습니다. 권리 ?
Feru

2
직렬화 한 모든 개체 또는 개체 컬렉션을 반환합니다.
aggaton

IMO이 더 나은 ansver가 작동했습니다.
simhumileco

33

다음이 있다고 가정합니다.

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를 사용하세요!
Nico Van Belle

1
Object.values ​​()는 IE의 모든 버전에서 지원
A Friend


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 데이터 객체)가있는 배열이 만들어집니다.
Mika Sundland

@ Shivam, 도움이 되었습니까?
CCC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.