Как импортировать json в js
5 лет назад
Человек-Молекула
Ответы
К приятным особенностям json-формата относится то, что его можно импортировать в нужном нам модуле напрямую, не используя методы для чтения файлов, такие как fs.readFileSync(). Дело в том, что метод fs.readFileSync() и другие относятся к среде node.js и не будут работать в браузере, а попытка их импорта, например, внутри React-приложения:
приведет к падениям и ошибкам.
Предположим, у нас есть следующие данные в формате json:
Сохраним эти данные внутри нашего приложения по адресу data/example.json. А потом просто импортируем их там, где они нам нужны, не забыв указать правильный путь:
Еще одна важная особенность заключается в том, что при таком способе данные парсятся автоматически, и нет необходимости использовать JSON.parse():
4 года назад
Кирилл Маркеев
Для того чтобы "распарсить" json-данные, и превратить их в js-объект, достаточно использовать метод JSON.parse().
4 года назад
Вячеслав Межуревский
Способ зависит от того, где работает код.
ES-модули: import with type json
Без with { type: 'json' } браузер и Node.js выдадут ошибку. Синтаксис работает в Node.js 22 и новее и в актуальных версиях Chrome, Edge, Safari и Firefox.
JSON-модуль даёт только экспорт по умолчанию. Именованный импорт import { name } from './data.json' не сработает.
Динамический импорт:
CommonJS: require
Node.js читает и разбирает файл сам. Файл кэшируется: если он изменится во время работы программы, повторный require вернёт старые данные.
Чтение файла через fs
Если файл нужно перечитывать или путь известен только во время работы:
Путь в readFile считается от папки, из которой запустили программу. Где лежит файл с кодом, значения не имеет.
Браузер без сборщика
Страница должна открываться через сервер. Если открыть HTML двойным кликом (адрес начинается с file://), браузер заблокирует запрос. Для проверки хватит npx serve в папке проекта.
Vite и webpack
Сборщики импортируют JSON без дополнительных настроек:
В Vite работает и именованный импорт отдельных полей.
TypeScript
Включите в tsconfig.json:
После этого TypeScript знает типы полей из файла.
Ошибка Unexpected token в JSON
JSON.parse и импорт падают, если в файле есть комментарии, одинарные кавычки или запятая после последнего элемента. В JSON допустимы только двойные кавычки и нет комментариев.
Модули, import и работу с данными разбирают в бесплатном курсе «Основы JavaScript».
3 дня назад
Никита Вихров






