#javascript #json
#javascript #json
Вопрос:
У меня есть json, возвращенный как часть моего вызова api, и он выглядит так, как показано ниже.
{
'D1': {
'name': 'Emp1',
'Age':22
},
'D2': {
'name': 'Emp2',
'Age':43
},
};
Я хочу преобразовать это в массив. т.е. в формате ниже.
[
'D1': {
'name': 'Emp1',
'Age':22
},
'D2': {
'name': 'Emp2',
'Age':43
},
];
Я пытаюсь сделать это, используя приведенный ниже код.
let obj = {
'D1': {
'name': 'Emp1',
'Age':22
},
'D2': {
'name': 'Emp2',
'Age':43
},
};
let wholeArray = Object.keys(obj).map(key => obj[key]);
console.log(wholeArray);
Но он удаляет внешние ключи JSON.
пожалуйста, дайте мне знать, где я ошибаюсь и как получить ожидаемый результат.
Комментарии:
1. Массив, которым вы поделились, не является ни допустимым Javascript, ни допустимым JSON.
2. требуемый формат недопустим. вам нужны только значения объектов? `
3. Не существует такого понятия, как «объект JSON»
4. Почему вы хотите выполнить это преобразование? Какие выгоды вы ожидаете от этого? Это похоже на проблему XY . Вы хотите преобразовать объект в массив, но вы хотите, чтобы этот массив вел себя как объект.
5. @ThomasSablik, мне нужно запустить a
foorEach
для этого вывода. итак, требуется в массиве
Ответ №1:
Вы можете разделить объект на массив только с одной парой ключ / значение.
let object = { D1: { name: 'Emp1', Age:22 }, D2: { name: 'Emp2', Age:43 } },
array = Object
.entries(object)
.map(pair => Object.fromEntries([pair]));
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Ответ №2:
Это:
[ 'D1': { 'name': 'Emp1', 'Age':22 }, 'D2': { 'name': 'Emp2', 'Age':43 }, ];
Просто не существует. У массивов нет ключей, у объектов есть.
Самое большее, что вы могли бы сделать, это:
[
{
'D1': {
'name': 'Emp1',
'Age':22
}
},{
'D2': {
'name': 'Emp2',
'Age':43
}
}
];
Массив объектов с одним ключом.
Один вариант кода для этого:
let obj = {
'D1': {
'name': 'Emp1',
'Age':22
},
'D2': {
'name': 'Emp2',
'Age':43
},
};
//let wholeArray = Object.keys(obj).map(key => obj[key]);
let wholeArray = Object.keys(obj).map(key => {
let ret={};
ret[key]=obj[key];
return ret;
});
console.log(wholeArray);
Побочное замечание: я вижу много похожих вопросов за последние 2-3 дня, людям нужен «массив JSON» с ключами, и они также аккуратно ставят «пустую» запятую в конце своих массивов. Вы, ребята, пришли с какого-то курса?