Функция map не принимает json-файл

243
05 сентября 2017, 12:15

Я пытаюсь подключить свой довольно большой json-файл и вывести из него информацию в react, но получаю ошибку .map is not a function. Сам файл выглядит так:

{
"0": {
"Title":"Qwe","Url":"test"
},
"1": {
"Title":"Qwe2","Url":"test2"
}
}

Вывести я его пытаюсь вот так:

const json = require('./f.json');
...
{json.map((item, index) => item.Title)}

Если json-файл привести к такому виду, то всё будет нормально

[{
"Title":"Qwe","Url":"test"
},
{
"Title":"Qwe2","Url":"test2"
}]

Но меня это не устраивает, так как имеется довольно много больших файлов, которые отформатированы в стиле первого примера. Можно ли с этим что-то сделать?

Answer 1

Дело в том, что вы работаете не с массивом, а с объектом,а у него нет встроенного метода map. Вы можете использовать метод Object.keys и перебрать массив ключей вашего объекта

Object.keys(json).map((item, index) => json[item].Title);

Более подробно: https://stackoverflow.com/questions/14810506/map-function-for-objects-instead-of-arrays

READ ALSO
Как сделать пропуск ошибок в gulp?

Как сделать пропуск ошибок в gulp?

Есть gulpfilejs, он работает хорошо, но есть одно но

307
Мега меню с помощью jQuery UI

Мега меню с помощью jQuery UI

Делаю меню на jQuery UIКак сделать, чтобы все подпункты были сверху на одной линии?

310
Выполнение скрипта со второй страницы

Выполнение скрипта со второй страницы

Добрый день! Есть скрипт модального окнаСкрипт выполняется сразу же как посетитель открыл первую страницу сайта, т

251
Свойства текста через JS [дубликат]

Свойства текста через JS [дубликат]

На данный вопрос уже ответили:

299