6
respostas

Pegar Json de arquivo externo e edita-lo

Olá pessoal estou fazendo um projeto e gostaria de saber como pegar o Json de um arquivo .Json e edita-lo com Javascript.

Alguém saberia me dizer como fazer isso?

6 respostas

Opa, Matheus.

Seguinte, vc vai usar um pacote chamado fs https://www.npmjs.com/package/fs

Ele tem um método que é apropriado pra fazer a escrita dentro de arquivos.

Segue a ideia:

import { writeFile } from 'fs'

const cliente = {
    nome: "Matheus",
    nota: 10,    
}

writeFile('../tmp/file.json', JSON.stringify(cliente), (err) => {
  if (err) console.log('Error writing file:', err)
})
  • ../tmp -> Uma pasta pra salvar o .json
  • file.json -> Um arquivo contendo o conteúdo json
  • cliente -> Objeto com o conteúdo que será inserido dentro do file.json

Caso não der certo usar import { writeFile } from 'fs'

Tente dessa forma:

const fs = require('fs')

const cliente = {
    nome: "Matheus",
    nota: 10,    
}

fs.writeFile('../tmp/file.json', JSON.stringify(cliente), (err) => {
  if (err) console.log('Error writing file:', err)
})

Espero ter ajudado

Olá, Obrigado!

Vou ver se funciona e te falo.

Também gostaria de saber, como eu posso pegar O Json de um arquivo externo e imprimi-lo na tela

Usando o método readFile

import { readFile } from 'fs'

readFile('../tmp/file.json', 'utf8', (err, jsonString) => {
    if (err) {
        console.log("File read failed:", err)
        return
    }
    console.log('File data:', jsonString) 
})

Boa tarde! Paulo.

Eu tentei ler o Json e tive o seguinte erro:

Uncaught TypeError: Failed to resolve module specifier "fs". Relative references must start with either "/", "./", or "../".

Não sei o porquê deste erro você poderia me ajudar?

Vou deixar o código Javascript abaixo e a importação no Html.

Código Javascript:

import { readFile } from 'fs'

readFile('../tmp/file.json', 'utf8', (err, jsonString) => {
    if (err) {
        console.log("File read failed:", err)
        return
    }
    console.log('File data:', jsonString) 
})

Importação no Html:

    <script src="../Javascript/main.js" type="module"></script>

Você tentou dessa forma:

const fs = require('fs')

fs.readFile('../tmp/file.json', 'utf8', (err, jsonString) => {
    if (err) {
        console.log("File read failed:", err)
        return
    }
    console.log('File data:', jsonString) 
})

Caso seja esse o problema... é devido o type module do js

Segue um link que vai explicar bem isso -> Módulos JavaScript