Rumah > hujung hadapan web > tutorial js > Sembang mendalam tentang modul JSON dalam JavaScript

Sembang mendalam tentang modul JSON dalam JavaScript

青灯夜游
Lepaskan: 2021-12-28 19:05:02
ke hadapan
2058 orang telah melayarinya

Artikel ini akan membawa anda melalui cadangan baharu ECMAScript: modul JSON. Mari lihat cara modul JSON berfungsi.

Sembang mendalam tentang modul JSON dalam JavaScript

Sistem modul ECMAScript (import dan export kata kunci) hanya boleh mengimport kod JavaScript secara lalai.

Walau bagaimanapun, selalunya mudah untuk menyimpan konfigurasi aplikasi dalam fail JSON, jadi kami mungkin mahu mengimport fail JSON terus ke dalam modul ES.

Sejak sekian lama, format modul commonjs telah menyokong import JSON.

Berita baiknya ialah cadangan baharu dalam fasa ketiga yang dipanggil modul JSON mencadangkan cara untuk mengimport JSON ke dalam modul ES. Sekarang, mari lihat cara modul JSON berfungsi.

1. Import config.json

Andaikan kami mempunyai fail config.json dengan kandungan berikut:

{
  "name": "My Application",
  "version": "v1.2"
}
Salin selepas log masuk

Cara menukar config.json Import modul ES?

Sebagai contoh, kami mencipta aplikasi web ringkas yang memaparkan nama dan versi aplikasi daripada fail konfigurasi JSON.

Jika anda cuba mengimport config.json secara langsung, Node.js akan membuang ralat.

import http from 'http';
import config from './config.json';
http
  .createServer((req, res) => {
    res.write(`App name: ${config.name}\n`);
    res.write(`App version: ${config.version}`);
    res.end();
  })
  .listen(8080);
Salin selepas log masuk

node.js membuang ralat semasa cuba menjalankan aplikasi TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json"

Sembang mendalam tentang modul JSON dalam JavaScript

Node.js Apabila menggunakan pernyataan import, The jangkaan lalai ialah kod JavaScript. Tetapi terima kasih kepada cadangan modul JSON, anda boleh menunjukkan jenis data yang anda ingin import: JSON.

Sebelum membetulkan aplikasi, mari kita lihat perkara yang disertakan dalam cadangan modul JSON.

2. Cadangan modul JSON

Intipati cadangan modul JSON adalah untuk membenarkan penggunaan penyataan import biasa untuk mengimport data JSON dalam modul ES.

boleh mengimport kandungan JSON dengan menambahkan penegasan import:

import jsonObject from "./file.json" assert { type: "json" };
Salin selepas log masuk

assert {type: "json"} ialah penegasan import yang menunjukkan bahawa modul harus dihuraikan dan diimport sebagai json. Pembolehubah

jsonObject mengandungi objek JavaScript biasa yang dibuat selepas menghuraikan kandungan file.json.

Kandungan modul JSON diimport menggunakan lalai, import bernama tidak tersedia.

Modul JSON juga boleh diimport secara dinamik:

const { default: jsonObject } = await import('./file.json', {
  assert: {
    type: 'json'
  }
});
Salin selepas log masuk

Apabila modul diimport secara dinamik, termasuk modul JSON, kandungan lalai tersedia dalam atribut default.

Dalam kes ini, penegasan import mewakili jenis JSON. Walau bagaimanapun, terdapat cadangan yang lebih umum untuk mengimport penegasan (kini dalam peringkat 3) yang membenarkan pengimportan lebih banyak format data, seperti modul CSS.

3. Dayakan modul JSON

Kini kami menyepadukan modul JSON ke dalam aplikasi web:

import http from 'http';
import config from './config.json' assert { type: "json" };
http
  .createServer((req, res) => {
    res.write(`App name: ${config.name}\n`);
    res.write(`App version: ${config.version}`);
    res.end();
  })
  .listen(8080);
Salin selepas log masuk

Modul utama kini diimportconfig.json fail dan akses nilainya config.name dan config.version.

Sembang mendalam tentang modul JSON dalam JavaScript

Modul JSON berfungsi dalam versi Node.js >=17.1, anda juga boleh menggunakan bendera --experimental-json-modules untuk mendayakan modul JSON Eksperimen

node --experimental-json-modules index.mjs
Salin selepas log masuk

semasa menyemak imbas Dalam persekitaran penyemak imbas, modul JSON tersedia bermula dalam Chrome 91.

4. Ringkasan

Secara lalai, modul ES hanya boleh mengimport kod JavaScript.

Terima kasih kepada cadangan modul JSON, anda boleh mengimport terus kandungan JSON ke dalam modul ES. Hanya gunakan penegasan import selepas pernyataan import.

import jsonContent from "./file.json" assert { type: "json" };
Salin selepas log masuk

Anda boleh menggunakan modul JSON bermula dalam Node.js 17.1, menggunakan bendera percubaan --experimental-json-modules dan dalam Chrome 91 dan ke atas.

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !

Atas ialah kandungan terperinci Sembang mendalam tentang modul JSON dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:segmentfault.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan