"some_key_a": "Value A",
"some_keyB": "Value B",
"sOMe_KeYY_c": "Value C",
}
Хочу спарсить жсон в Map<string, string> при этом чтобы все ключи были в lowercase и чтобы этот мап был константным.
Не нашел в гугле ни одного способа сделать это,
ПРосто заполнить массив можно вот так
const items = new Map<string, string>(Object.entries(JSON.parse(file)));
но ключи будут не ловеркейсы
Чтобы они были ловеркейсы, я только знаю вариант: пройтись по всем items и изменить значение. Но тогда items не будет const.
Как-то может можно считать сразу с конвертацией ключей в ловеркейс?
Ну это лучше бы в @js_noobs_ru спросить
Менять поля const объекта ничего не мешает const запрещает делать переприсваивание. А содержимое меняй сколько хочешь
А так — проходишь по entries и записываешь новый объект. Будет примерно так: const result = {}; for (const [key, value] of Object.entries(json)) { result[key.toLowercase()] = value; }
спс, только почему value типа unknown? Да без пробел касчу в as string но типа странно
Object.fromEntries(Object.entries(obj))
Так на этот вопрос же сразу же дали максимально правильный ответ)
ну я не видел варианта с Object.fromEntries
Так он неправильный, это будет просто клон объекта
ну я ж не буду еще писать сам .map
Хм, странно, почему unknown, а не any. Интересно было бы посмотреть фрагмент кода
Хех. Как типично. Задача решается в 2 действия, а человек ищет готовое решение🤷♂
Обсуждают сегодня