@Astral100498

Как преобразовать json в map?

Привет. У меня есть json c вложенной структурой
{
  "room": {
    "80-c4-48-84-79": " Federal research and production center ",
    "73-b3-49-af-9d": " dgru",
    "04-d2-45-86-6a": "Main",
    "d0-51-41-bf-4f": " Publications",
    "c5-3c-4d-83-4f": " news",
    "7d-ae-46-a0-25": "Contacts",
    "8f-01-4b-81-4e": "Certification center",
    "56-32-40-82-1a": "1959",
    "27-63-47-b9-1c": "2019",
    "a7-34-46-b8-38": " Moscow",
    "42-29-4c-bb-df": " text",
    "67-8b-47-b1-34": "example"
  }
}


как преобразовать его в Mаp?
Есть вот такой пример, но мне не удается его преобразовать под свой json
const personsJson = `{"1":{"firstName":"Jan","lastName":"Kowalski"},"2":{"firstName":"Justyna","lastName":"Kowalczyk"}}`;
const personsObject = JSON.parse(personsJson);
const personObjectEntries = Object.entries(personsObject);
const personObjectEntriesNumberKeys = personObjectEntries.map(person => {
    person[0] = parseInt(person[0]);
    return person;
});
const personsMap = new Map(personObjectEntriesNumberKeys);
for (const key of personsMap.keys()) {
    console.log(typeof key)
}

Буду благодарен за помощь
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
a = {
  "room": {
    "80-c4-48-84-79": " Federal research and production center ",
    "73-b3-49-af-9d": " dgru",
    "04-d2-45-86-6a": "Main",
    "d0-51-41-bf-4f": " Publications",
    "c5-3c-4d-83-4f": " news",
    "7d-ae-46-a0-25": "Contacts",
    "8f-01-4b-81-4e": "Certification center",
    "56-32-40-82-1a": "1959",
    "27-63-47-b9-1c": "2019",
    "a7-34-46-b8-38": " Moscow",
    "42-29-4c-bb-df": " text",
    "67-8b-47-b1-34": "example"
  }
}
d = new Map(Object.keys(a.room).map(x=>[x, a.room[x]]))


либо пишите рекурсивную функцию если нужно пройтись по вложенным объектам:
var remap = x=>new Map(Object.keys(x).map(y=>[y,(typeof(x[y])=="object")?remap(x[y]):x[y]]))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Sportrecs Москва
от 150 000 до 200 000 ₽