Как импортировать json в js

Аватар пользователя Кирилл Маркеев
Кирилл Маркеев
06 февраля 2023

К приятным особенностям json-формата относится то, что его можно импортировать в нужном нам модуле напрямую, не используя методы для чтения файлов, такие как fs.readFileSync(). Дело в том, что метод fs.readFileSync() и другие относятся к среде node.js и не будут работать в браузере, а попытка их импорта, например, внутри React-приложения:

import { readFileSync } from 'node:fs';

приведет к падениям и ошибкам.

Предположим, у нас есть следующие данные в формате json:

{"widget": {
  "debug": "on",
  "window": {
    "title": "Sample Konfabulator Widget",
    "name": "main_window",
    "width": 500,
    "height": 500
  }
}}

Сохраним эти данные внутри нашего приложения по адресу data/example.json. А потом просто импортируем их там, где они нам нужны, не забыв указать правильный путь:

import exampleJsonFile from './data/example.json'; // имя при импорте может не совпадать с именем файла

Еще одна важная особенность заключается в том, что при таком способе данные парсятся автоматически, и нет необходимости использовать JSON.parse():

// вывод смотрим в инструментах разработчика (F12)

console.log(typeof exampleJsonFile); // => object
console.log(exampleJsonFile.widget) // => {debug: 'on', window: {…}}
console.log(exampleJsonFile.widget.window.title); // => Sample Konfabulator Widget
7 0

Для того чтобы "распарсить" json-данные, и превратить их в js-объект, достаточно использовать метод JSON.parse().

// Читаем json-файл, результатом в data будет строка
const readFile = fs.readFileSync('jsonex.json', 'utf8');
console.log(readFile);
/* Результат:
{ 
  "id": "1",
  "firstName": "Tom",
  "lastName": "Cruise"
}
*/
const parsedData = JSON.parse(readFile);
// После парсинга переменной мы получаем объект, к свойствам которого можно обращаться как обычно — например, через "." 
console.log(parsedData.firstName);
// Результат: Tom
2 0
Познакомьтесь с основами JavaScript бесплатно

Похожие вопросы