360 Stimmen

Gibt es eine Anforderung für JSON in Node.js?

Ich möchte ein paar JSON-Dateien in meinen JavaScript-Code einbinden, die sich im gleichen Verzeichnis wie meine JavaScript-Quelldatei befinden.

Wenn ich eine weitere JavaScript-Datei einschließen möchte, könnte ich einfach require verwenden. Jetzt verwende ich readFileSync und __dirname, um das JSON zu erhalten, was ich für einen hässlichen Weg halte.

Gibt es etwas Ähnliches wie require, das es mir ermöglicht, eine JSON-Datei zu laden?

0 Stimmen

Siehe diese ähnliche Frage: stackoverflow.com/questions/4662851/…

0 Stimmen

@coen Was meinen Sie mit "eine JSON-Datei einfügen"? Lesen und analysieren Sie es? Wenn ja, mögliches Duplikat von: stackoverflow.com/questions/5726729/…

3 Stimmen

Ja; lesen und parsen. Aber dies bedeutet speziell das Lesen einer Datei, ähnlich dem Lesen einer js-Datei, also handelt es sich nicht um ein Duplikat und goatslackers Antwort ist immer noch gültig.

9voto

dreamLo Punkte 1118

Sie können JSON-Dateien importieren, indem Sie die Node.js v14 experimentelle JSON-Module-Flagge verwenden. Weitere Details hier

file.js

import data from './folder/file.json' assert { type: 'json' }

export default {
  foo () {
    console.log(data)
  }
}

Und Sie rufen es mit node --experimental-json-modules file.js

7voto

Igor Litvinovich Punkte 2196

Sie können sogar require Ihres JSON verwenden, ohne die Erweiterung .json anzugeben. Dadurch können Sie die Dateierweiterung in .js ändern, ohne dass Sie Ihre Imports ändern müssen.

Angenommen, wir haben ./myJsonFile.json im gleichen Verzeichnis.

const data = require('./myJsonFile')

Wenn Sie in Zukunft ./myJsonFile.json in ./myJsonFile.js ändern, sollte sich nichts an dem Import ändern.

4voto

emaxe Punkte 61

In ES6:

import someObject from './somefile.json' assert {type: 'json'};

In ES6:

import someObject from './somefile.json' assert {type: 'json'};

3voto

Thanawat Gulati Punkte 19

Sie können ein Modul verwenden, um ein require zu erstellen.

import { createRequire } from 'module'
const require = createRequire(import.meta.url)
const foo = require('./foo.json')

-1voto

Chukwunazaekpere Punkte 368

Verwenden Sie einfach das JSON-Objekt aus Node; Sie müssen es nicht importieren. Siehe Verwendung unten:

const jsonifiziertesObjekt = JSON.parse(ein_array oder ein_objekt)
oder
JSON.stringify(objekt)

Hoffentlich hilft das.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X