Cela résoudra le problème :
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);
Ou en utilisant Objet.entries() méthode :
console.log(Object.entries(json_data));
Dans les deux cas, la sortie sera :
/* output:
[['2013-01-21', 1], ['2013-01-22', 7]]
*/
Les solutions ci-dessus ne fonctionnent pas pour les objets imbriqués. Pour les objets imbriqués, nous pouvons faire quelque chose comme ceci :
const isObject = (obj) => {
return typeof obj === 'object' && !Array.isArray(obj) && obj !== null;
}
const objToArray = (obj) => {
return Object.keys(obj).map((key) => {
return [
key, isObject(obj[key]) ?
objToArray(obj[key]) :
obj[key]
];
});
}
const json_data = {
"2013-01-21":1,
"2013-01-22":7,
"ab":{"x":{"xa": 3, "xb": 4}, "y": 2},
};
console.log(JSON.stringify(objToArray(json_data)));
La sortie dans ce cas sera :
/* output:
[["2013-01-21",1],["2013-01-22",7],["ab",[["x",[["xa",3],["xb",4]]],["y",2]]]]
*/