Considérons que nous avons un objet json que nous voulons convertir
const my_object = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Il existe plusieurs solutions que vous pouvez utiliser :
1. Objet.keys() y Objet.valeurs()
Ces fonctions convertissent n'importe quel objet en un tableau. L'une retourne un tableau avec toutes les clés, et l'autre toutes les valeurs :
console.log(Object.keys(my_object))
// Output : ["key1", "key2", "key3"]
console.log(Object.values(my_object))
// Output : ["value1", "value2", "value3"]
Je ne suis pas sûr de comprendre la question initiale, mais la solution serait probablement la suivante
data.addRows(Object.values(my_object));
2. Objet.entries()
Cette fonction est un mélange des deux précédentes :
console.log(Object.entries(my_object))
// Output : [["key1", "value1"], ["key2", "value2"], ["key3", "value3"]]
Il n'est pas utile pour la question initiale, mais cette fonction est si utile que je devais la mentionner. Surtout, lorsque le Valeur sont des objets imbriqués. Disons que nos valeurs sont des objets comme ceci :
const my_object = {
"key1": {"a": 1, "b": 2},
"key2": {"y": 25, "z": 26},
"key3": {"much": "stuff"}
}
et nous voulons nous retrouver avec un tableau comme celui-ci
my_array = [
{"key": "key1", "a": 1, "b": 2},
{"key": "key2", "y": 25, "z": 26},
{"key": "key3", "much": "stuff"}
]
Nous devons utiliser Object.entries()
pour obtenir toutes nos clés avec leur valeur. Nous allons commencer par un code trop détaillé :
my_array = Object.entries(my_object).map(function(entry){
key = entry[0];
value = entry[1];
nested_object = value;
nested_object.key = key;
return nested_object;
});
console.log(my_array);
// Expected output : [
// {"key": "key1", "a": 1, "b": 2},
// {"key": "key2", "y": 25, "z": 26},
// {"key": "key3", "much": "stuff"}
//]
Nous pouvons utiliser opérateur de diffusion pour simplifier notre code :
my_array = Object.entries(my_object).map(entry => {"key": entry[0], ...entry[1]});
console.log(my_array);
// Expected output : [
// {"key": "key1", "a": 1, "b": 2},
// {"key": "key2", "y": 25, "z": 26},
// {"key": "key3", "much": "stuff"}
//]