A nova sintaxe de ECMAScript Modules (ESM) foi estabilizada em versões recentes do Node.js para substituir o CommonJS, não padronizado pela especificação da linguagem.

Apesar do "objetivo" de ESM e CJS serem os mesmos, existem algumas diferenças. Entre elas, pode-se citar, no caso desta pergunta, o fato de que, até o momento, a sintaxe de ES Modules não suportar a importação de JSON.

Portanto, uma forma (recomendada pela própria documentação do Node.js) de se importar JSON é utilizar a API de file system. Assim:

import { readFile } from 'fs/promises';
const json = JSON.parse(await readFile('./test.json', 'utf8'));

Um outro modo é "recriar" o require para uso no contexto de ECMAScript Modules. No entanto, eu questionaria o uso dessa alternativa.

Recriar o require, utilizando o referido createRequire, parece-me um overhead muito grande para uma simples leitura de arquivo e subsequente parse. O require é extremamente complexo e vai muito além de simples importações de JSON. Não vale a pena.

Só para garantir a completude desta resposta, até daria para fazer assim:

import { createRequire } from 'module';
const require = createRequire(import.meta.url);

const json = require('./test.json');

Mas insisto em reiterar: o createRequire não deve ser utilizado para isso, uma vez que é um overhead extremamente grande para uma simples leitura de arquivo. Idealmente o createRequire deve ser utilizado apenas em casos em que uma codebase faz uso tanto de ESM e CJS, sendo necessário criar uma "ponte" para interligá-los. Utilizar createRequire para ler JSON é, na maioria dos casos, um absurdo.


Futuramente, quando a proposta de import assertions for estabilizada, suponho que será possível importar JSON com os ES Modules. Até então, é possível utilizar a flag --experimental-json-modules – não estabilizada, uma vez que é experimental.

Answer from Luiz Felipe on Stack Overflow
🌐
DIO
dio.me › articles › como-importar-e-trabalhar-com-arquivos-json-em-javascript-7758eeca289c
Como Importar e Trabalhar com Arquivos JSON em JavaScript | Julio Alves | DIO
March 1, 2025 - A função fetch() é uma das formas mais simples e poderosas de carregar dados externos em JavaScript, especialmente quando você está trabalhando em um ambiente de navegador. Ela permite realizar requisições HTTP para buscar recursos, como ...
Top answer
1 of 1
4

A nova sintaxe de ECMAScript Modules (ESM) foi estabilizada em versões recentes do Node.js para substituir o CommonJS, não padronizado pela especificação da linguagem.

Apesar do "objetivo" de ESM e CJS serem os mesmos, existem algumas diferenças. Entre elas, pode-se citar, no caso desta pergunta, o fato de que, até o momento, a sintaxe de ES Modules não suportar a importação de JSON.

Portanto, uma forma (recomendada pela própria documentação do Node.js) de se importar JSON é utilizar a API de file system. Assim:

import { readFile } from 'fs/promises';
const json = JSON.parse(await readFile('./test.json', 'utf8'));

Um outro modo é "recriar" o require para uso no contexto de ECMAScript Modules. No entanto, eu questionaria o uso dessa alternativa.

Recriar o require, utilizando o referido createRequire, parece-me um overhead muito grande para uma simples leitura de arquivo e subsequente parse. O require é extremamente complexo e vai muito além de simples importações de JSON. Não vale a pena.

Só para garantir a completude desta resposta, até daria para fazer assim:

import { createRequire } from 'module';
const require = createRequire(import.meta.url);

const json = require('./test.json');

Mas insisto em reiterar: o createRequire não deve ser utilizado para isso, uma vez que é um overhead extremamente grande para uma simples leitura de arquivo. Idealmente o createRequire deve ser utilizado apenas em casos em que uma codebase faz uso tanto de ESM e CJS, sendo necessário criar uma "ponte" para interligá-los. Utilizar createRequire para ler JSON é, na maioria dos casos, um absurdo.


Futuramente, quando a proposta de import assertions for estabilizada, suponho que será possível importar JSON com os ES Modules. Até então, é possível utilizar a flag --experimental-json-modules – não estabilizada, uma vez que é experimental.

🌐
GUJ
guj.com.br › front-end › javascript
Importar um arquivo JSON que está em .js - JavaScript - GUJ
October 28, 2020 - Estou realizando uma atividade de JavaScript, na qual preciso fazer o seguinte exercício: Porém acredito que não estou conseguindo importar o arquivo corretamente, já que o resultado está sendo: exercicio4.js:5 Uncaught SyntaxError: Cannot use import statement outside a module] No caso, meu js está assim: let div = document.querySelector("#cards"); document.querySelector("#btn1").addEventListener("click", function(){ import detran from "/detran.js"; pesquisa(detran); }); func...
Top answer
1 of 4
3

Caso você não queria utilizar JQuery pode acessar o arquivo utilizando XMLHttpRequest():

var getJSON = function(url, callback) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'json';
    xhr.onreadystatechange = function() {
      var status = xhr.status;
      if (status === 200) { 
        //Callback caso de tudo certo
        callback(null, xhr.response);
      } else {
        //Callback caso de algum erro
        callback(status, xhr.response);
      }
    };
    xhr.send();
};

//Utilizando o método
getJSON('SeuArquivo.json', function(err, data) {
  if (err !== null) {
    console.log('Ocorreu um erro' + err);
  } else {
    //Aqui você manipula os dados e pode percorrer e jogar no HTML 
    //da forma que achar mais adequada.
    console.log(data);
  }
});

Caso queria utilizar a biblioteca jquery você deve incluir a biblioteca:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

E após o carregamento da página você pode acessar o arquivo através do método getJSON():

//OnLoad
$(function(){

  $.getJSON("SeuArquivo.json", function(data) {
    //Aqui você manipula os dados e pode percorrer e jogar no HTML 
    //da forma que achar mais adequada.
      console.log(data); 
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

2 of 4
3

Com javascript puro pode-se ler usando XMLHttpRequest (sim, para ler JSON). Primeiro crie um arquivo .json para usar umas das funções. Exemplo:

var xmlhttp = new XMLHttpRequest();
var url = "meu_json.json"; // caminho do arquivo

xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myArr = JSON.parse(this.responseText);
        handle(myArr);
    }
};
xmlhttp.open("GET", url, true);
xmlhttp.send();

function handle(arr) {
    // forEach aqui para criar o select
}

Ou mais facilmente com jQuery pode-se utlizar a função $.getJSON:

// onde ajax/meu_json.json é o caminho do arquivo
$.getJSON( "ajax/meu_json.json", function( data ) {
  // forEach aqui para criar o select a partir de data
});
🌐
Reddit
reddit.com › r/learnjavascript › como importar um arquivo json para javascript?
r/learnjavascript on Reddit: como importar um arquivo json para Javascript?
February 26, 2022 -

Então estou usando o método fetch para importar meu arquivo json local para meu programa javascript e depois atribuindo-o à minha variável data

let data = fetch("./data.json")
    .then(response => {
        return response.json();
    });

console.log(data)

este é o código que estou usando, mas ele está dando o valor do console

Promise { <state>: "pending" }
​
<state>: "fulfilled"
​<value>: Array(6) [ {…}, {…}, {…}, … ]
​​
0: Object { title: "Work", timeframes: {…} }
​​
1: Object { title: "Play", timeframes: {…} }
​​
2: Object { title: "Study", timeframes: {…} }
​​
3: Object { title: "Exercise", timeframes: {…} }
​​
4: Object { title: "Social", timeframes: {…} }
​​
5: Object { title: "Self Care", timeframes: {…} }
​​
length: 6
​​
<prototype>: Array []
​
<prototype>: Promise.prototype { … }

mas eu só quero aquela parte do valor que é um array, porque quero usar esses valores com meu loop for, posso ter alguma ajuda?

🌐
Hora de Codar
horadecodar.com.br › início › blog › como carregar arquivo local de json com javascript
Como carregar arquivo local de JSON com JavaScript | Hora de Codar
August 16, 2022 - Neste artigo você vai aprender a como carregar arquivo local de JSON com JavaScript, utilizando a fetch API
🌐
YouTube
youtube.com › watch
Como pegar os dados de um arquivo JSON usando JAVASCRIPT - Acessando um JSON com JAVASCRIPT - YouTube
Nesse vídeo mostro a vocês como pegar os dados de um arquivo JSON usando JAVASCRIPT e colocar esses dados na sua pagina HTML.🚀 Está com dificuldades para es...
Published   November 17, 2022
Find elsewhere
🌐
web.dev
web.dev › blog › json module scripts are now baseline newly available
JSON module scripts are now Baseline Newly available | Blog | web.dev
June 18, 2025 - If you want to import a JSON file in a JavaScript module, you previously had to go through hoops like embedding JSON in JavaScript just so you can use a regular import statement, or downloading a file with fetch() and then calling Response.json().
🌐
Delft Stack
delftstack.com › home › carregar arquivo json em javascript
Carregar arquivo JSON em JavaScript | Delft Stack
October 18, 2021 - Leremos o seguinte arquivo JSON. "Students" : [ { "firstName":"Ram","lastName":"Sharma" } ] } Em JavaScript, podemos usar o método require() para carregar arquivos e módulos. Isso leva o caminho do arquivo local onde ele foi salvo.
🌐
GUJ
guj.com.br › programação
[RESOLVIDO] "Linkar" arquivo JSON dentro do Javascript - Programação - GUJ
August 20, 2018 - Pessoal, eu já consegui linkar o javascript pelo HTML, o problema tá pra linkar o JSON no .js. Meu arquivo .js: Eu queria colocar no lugar do “conteudo” o meu outro arquivo JSON, pra deixar o arquivo dinamico… var conteudo = { "nomeV": "Abner Rodrigues", "blocoV": "A - 12", "rgV": "50.656.978-0", "veiculoV" : "Zafira", "placaV" : " - " + "AAA-1234", "empresaV": "Minha Empresa", "datahoraV": "20/08/2018 as 12:35" }; var nome = document.getElementById('nome'); nome.innerHTML = co...
🌐
Portal Visual Dicas
visualdicas.com.br › início › programação › javascript › como ler e obter dados de um arquivo json em javascript
Como ler e obter dados de um arquivo JSON em JavaScript - Portal Visual Dicas
October 20, 2020 - Neste tutorial mostraremos como ler e obter informações de um arquivo JSON ( "Javascript Object Notation") em JavaScript. Ao recebermos dados JSON de um servidor web, esse dados serão sempre uma string. Através do método JSON.parse() podemos converter essa string em um objeto JavaScript ...
🌐
Mozilla
developer.mozilla.org › pt-BR › docs › Web › JavaScript › Reference › Statements › import
import - JavaScript - MDN Web Docs - Mozilla
December 17, 2024 - Os parâmetros de exportação especificam exportações nomeadas individuais, enquanto a importação * como sintaxe de nome importa todos eles. Abaixo estão alguns exemplos para esclarecer a sintaxe. Isso insere myModule no escopo atual, contendo todas as exportações do módulo no arquivo localizado em /modules/my-module.js.
🌐
Alura
cursos.alura.com.br › fórum › front-end › frameworks mvc › node.js: inovando com javascript no backend
Importar arquivo json no node | Node.js: Inovando com Javascript no backend | Alura - Cursos online de tecnologia
September 17, 2019 - Você pode fazer o curso de NodeJS para criação de API, lá você irá aprender a criar uma API e usar JSON Você pode colocar o seu JSON nesse site: https://jsonblob.com e consumir ele usando o Axios a ideia em si não é muito complicada!
🌐
Hora de Codar
horadecodar.com.br › início › blog › como adicionar dados em arquivo json com node.js
Como adicionar dados em arquivo JSON com Node.js
February 11, 2023 - A adição de dados a um arquivo JSON é simples, basta seguir os passos descritos no artigo: importar o módulo fs, carregar o arquivo JSON, adicionar novos dados ao objeto e salvar as alterações no arquivo.
🌐
Alura
cursos.alura.com.br › fórum › programação › javascript
Pegar Json de arquivo externo e edita-lo | JavaScript | Alura - Cursos online de tecnologia
January 5, 2022 - Também gostaria de saber, como eu posso pegar O Json de um arquivo externo e imprimi-lo na tela · por Paulo Henrique Alves · | 59.6k xp | 13 posts 07/01/2022 · Usando o método readFile · import { readFile } from 'fs' readFile('../tmp/...
🌐
Acervo Lima
acervolima.com › como-ler-e-escrever-um-arquivo-json-usando-node-js
Como ler e escrever um arquivo JSON usando Node.js? – Acervo Lima
Assim como o XML, é uma das formas de troca de informações entre aplicativos. Este formato de dados é amplamente usado por aplicativos da web / APIs para se comunicarem entre si. ... Método 1: Usando o método require: O método mais simples para ler um arquivo JSON é solicitá-lo em ...
🌐
Reddit
reddit.com › r › learnjavascript › comments › s1i96v › how_to_import_a_json_file_into_a_javascript_file
Como importar um arquivo JSON para ...
January 11, 2022 - <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="Dashboard"> <title>Dashboard</title> </head> <body> <script type="text/javascript" src="update.js"></script> <h1>Preço das Ações:</h1> <h2 id="ap">Apple: </h2> <h2 id="ts">Tesla: </h2> <button onclick="updatePrice();">atualizar</button> </body> </html> ... const src = require("./prices.json"); function updatePrice() { document.getElementById("ap").innerHTML = "Apple: " + src.Apple.price; document.getElementById("ts").innerHTML = "Tesla: " + src.Tesla.price; }; O arquivo JSON é o seguinte: (os preços são inseridos arbitrariamente agora)
🌐
Mozilla
developer.mozilla.org › pt-BR › docs › Learn › JavaScript › Objects › JSON
Trabalhando com JSON - Aprendendo desenvolvimento web | MDN
July 29, 2024 - Isso não é um grande problema — o JavaScript fornece um objeto JSON global que possui métodos disponíveis para conversão entre os dois. Nota: Converter uma string em um objeto nativo é chamado de análise, enquanto a conversão de um objeto nativo em uma string para que possa ser transmitida pela rede é chamada de stringification. Um objeto JSON pode ser armazenado em seu próprio arquivo, que é basicamente apenas um arquivo de texto com uma extensão de .json, e um MIME type de application/json.