変換したいjsonオブジェクトがあることを検討してください
const my_object = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
使用できるソリューションがいくつかあります。
1. Object.keys()とObject.values()
これらの関数は、任意のオブジェクトを配列に変換します。1 つはすべてのキーを含む配列を返し、もう 1 つはすべての値を返します。
console.log(Object.keys(my_object))
// Output : ["key1", "key2", "key3"]
console.log(Object.values(my_object))
// Output : ["value1", "value2", "value3"]
最初の質問を理解できるかどうかはわかりませんが、解決策はおそらく
data.addRows(Object.values(my_object));
2.Object.entries ()
この関数は、上記の 2 つを組み合わせたものです。
console.log(Object.entries(my_object))
// Output : [["key1", "value1"], ["key2", "value2"], ["key3", "value3"]]
最初の質問には役に立ちませんでしたが、この機能は非常に便利なので、言及しなければなりませんでした。特に、value_がネストされたオブジェクトの場合。値が次のようなオブジェクトであるとしましょう:
const my_object = {
"key1": {"a": 1, "b": 2},
"key2": {"y": 25, "z": 26},
"key3": {"much": "stuff"}
}
そして、このような配列になりたい
my_array = [
{"key": "key1", "a": 1, "b": 2},
{"key": "key2", "y": 25, "z": 26},
{"key": "key3", "much": "stuff"}
]
Object.entries()
すべてのキーをその値で取得するために使用する必要があります。詳細なコードから始めます。
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"}
//]
拡散演算子を使用してコードを簡素化できます。
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"}
//]