#arrays #json #typescript
Вопрос:
У меня есть проект машинописи, в котором я хочу изменить формат объекта JSON. Объект, который я получаю, представляет собой массив объектов с ключами и значениями, я хочу разделить ключи в первом массиве, а затем данные в каждом массиве.
В настоящее время у меня есть следующий объект:
[
{
"id": "1",
"ser": null,
"IP": null,
"host": "",
"type": "Web",
"auth": ""
},
{
"id": "2",
"ser": null,
"IP": "191.174.230.02",
"host": "",
"type": "Proxy",
"auth": ""
}
]
Это то, чего я хочу достичь:
[
"id",
"ser",
"IP",
"host",
"type",
"auth"
],
[
"1",
null,
null,
"",
"Web",
""
],
[
"2",
null,
"191.174.230.02",
"",
"Proxy",
""
]
Это объект, который я хочу получить, добавив к values
нему свойство:`
{
"values": [
[
"id",
"ser",
"IP",
"host",
"type",
"auth"
],
[
"1",
null,
null,
"",
"Web",
""
],
[
"2",
null,
"191.174.230.02",
"",
"Proxy",
""
]
]
}
Ответ №1:
- используйте Object.keys(данные[0]), чтобы получить ключи первого элемента
- повторите все элементы с Object.values(элемент), чтобы получить данные каждого элемента
- введите ключ и значение элемента в массив
Вот код.
var data = [
{
id: "1",
ser: null,
IP: null,
host: "",
type: "Web",
auth: "",
},
{
id: "2",
ser: null,
IP: "191.174.230.02",
host: "",
type: "Proxy",
auth: "",
},
];
var arr = [Object.keys(data[0])];
for (let element of data) {
arr.push(Object.values(element));
}
var obj = { values: arr };
Комментарии:
1. Хорошо, это работает, но можно ли добавить свойство к конечному объекту? Я обновил свой вопрос
2. используйте объект для хранения ключа «значения» и arr, см. Мой обновленный ответ