JSON Toolkit

Apa itu fail JSON, apa yang perlu digunakan untuk membukanya, dan cara menyuntingnya

Inti pati: Daripada teks rosak dalam Notepad kepada tiga cara membuka fail JSON, serta cara mengesahkan tiada yang rosak selepas disunting dan apa yang perlu dilakukan apabila fail besar enggan dibuka.

Pemula~9 min bacaanDiterbitkan 2026-10-30Dikemas kini 2026-10-30
Kulit untuk asas fail JSON

Kesimpulan utama: sebelum membuka fail JSON, sahkan pengekodan dan BOM-nya, kemudian semak bahawa strukturnya hanya objek atau tatasusunan; selepas menyunting, sentiasa sahkan dengan penghurai dan jangan hanya memerhati kurungan serta koma dengan mata.

Ia hanyalah fail teks biasa dengan sambungan .json, dan Notepad pun boleh membukanya. Sakit kepala sebenar bukanlah "ia tidak akan terbuka", tetapi apabila ia sudah terbuka anda tidak nampak apa yang telah anda rosakkan.

1. Apa sebenarnya yang ada dalam fail JSON

Fail JSON yang sah hanya boleh mengandungi salah satu daripada dua perkara: objek {...} atau tatasusunan [...]. Tiada yang lain dibenarkan — tiada pengisytiharan pemboleh ubah, tiada komen, tiada fungsi.

{
  "name": "order service",
  "port": 8080,
  "debug": false,
  "upstream": ["10.0.0.11", "10.0.0.12"],
  "timeout": null
}

Mengenali tiga perkara dari segi struktur sudah cukup:

Apa yang anda lihat Makna Konsep pengaturcaraan yang sepadan
Pasangan kunci-nilai dibaluti { } Objek; kunci mesti rentetan berpetikan berganda Map / struct
Urutan nilai dibaluti [ ] Tatasusunan; jenis elemen boleh berbeza List
Enam jenis nilai Rentetan, nombor, boolean, null, objek, tatasusunan Hanya enam ini; tiada tarikh dan tiada integer

Sambungan fail tidak menentukan kandungan: package.json, tsconfig.json, dan composer.json semuanya jenis benda yang sama; alat yang berbeza hanya bersetuju untuk membaca kunci yang berbeza daripadanya.

2. Tiga cara membukanya, dipilih mengikut senario

Hanya mahu melihat sepintas lalu: buka dalam pelayar. Seret fail itu ke tetingkap Chrome atau Edge dan pelayar memaparkannya sebagaimana adanya; jika sambungan JSON Viewer dipasang, ia dicetak cantik dan boleh dikuncupkan secara automatik.

Perlu menyunting kandungan: gunakan editor. VS Code, Sublime, dan Notepad++ semuanya dilengkapi penyerlahan sintaks JSON dan pemadanan kurungan, dan Shift + Alt + F dalam VS Code memformatkan dokumen. Ambil perhatian bahawa Notepad Windows mungkin menambah BOM semasa menyimpan, jadi perubahan konfigurasi anda mungkin tidak berkesan; lebih baik elakkannya.

Tidak mahu memasang apa-apa, hanya mahu mengesahkan: gunakan pemformat JSON dalam talian. Tampal kandungannya dan anda segera melihat nombor baris serta lajur, lokasi kesilapan, dan pokok yang boleh dikuncupkan; salin hasilnya apabila selesai. Data diproses secara setempat dalam pelayar dan tidak dimuat naik ke pelayan.

Fail besar (puluhan MB atau lebih): jangan paksa membukanya dalam editor. Membuka fail JSON 100 MB dalam VS Code akan tersekat sehingga anda mempersoalkan pilihan hidup anda; gunakan baris arahan untuk memeriksa struktur dahulu:

# Look at the first 20 lines to confirm whether it is an array
head -n 20 data.json

# Use jq to list top-level keys without loading the whole file
jq -r 'keys[]' data.json | head

# Count the array length
jq 'length' data.json

3. Apa yang perlu dilakukan apabila klik dua kali membuka teks rosak

Tiga punca, masing-masing dikendalikan secara berbeza:

  1. Ia sebenarnya fail binari (contohnya arkib termampat, atau fail pangkalan data yang dieksport, dengan sambungan .json). Gunakan file data.json untuk melihat jenis sebenar; jangan paksakan ia dilayan sebagai teks.
  2. Pengekodannya bukan UTF-8. Teks Cina yang dikodkan sebagai GBK menjadi rosak dalam persekitaran UTF-8. Gunakan "Buka semula dengan pengekodan" dalam editor untuk mencuba GBK sekali; jika ia dipaparkan dengan betul, simpannya sebagai UTF-8.
  3. Fail itu telah disulitkan atau dimampatkan. Gejalanya ialah PK (zip) atau timbunan tanda soal pada permulaan; fail ini perlu dinyahmampatkan atau dinyahsulitkan dahulu.

4. Cara mengesahkan tiada yang rosak selepas menyunting

JSON mempunyai toleransi sifar: satu koma yang hilang, satu koma berlebihan, atau satu petikan yang hilang dan seluruh fail mati, dan lokasi kesilapan yang dilaporkan sering menunjuk ke baris seterusnya. Jadi anda mesti mengesahkan selepas menyunting; jangan bergantung pada mata anda.

Tiga tindakan penyuntingan berisiko tinggi, disusun mengikut kekerapan ia menimbulkan masalah:

Tindakan Akibat lazim Cara mengelakkannya
Menampal blok konfigurasi Membawa koma hujung atau tanda baca lebar penuh Formatkan sekali sejurus selepas menampal
Menukar susunan kunci secara manual Koma berlebihan atau koma yang hilang Gunakan arahan alih baris editor; jangan taip semula dengan tangan
Memadam elemen terakhir tatasusunan Meninggalkan ,] Semak bahawa kurungan berpasangan selepas memadam

Pengesahan itu mudah: tampal ke dalam pengesah dalam talian dan cari teks merah, atau jalankan satu baris dalam baris arahan:

python3 -m json.tool config.json > /dev/null && echo OK

Jika ia mencetak OK, fail itu sah. Jika anda juga ingin mengesahkan jenis medan (contohnya port mesti nombor dan name tidak boleh kosong), menulis JSON Schema jauh lebih boleh dipercayai daripada mata manusia.

5. Bagaimana .json berbeza daripada saudara terdekatnya

Sambungan Perbezaan Bolehkah penghurai standard membacanya
.json JSON standard Ya
.jsonc Membenarkan komen // dan /* */ Tidak; komen perlu dibuang dahulu
.json5 Membenarkan komen, petikan tunggal, kunci tanpa petikan, koma hujung Tidak; penghurai JSON5 diperlukan
.jsonl / .ndjson Satu JSON bebas setiap baris; fail keseluruhan bukan JSON yang sah Tidak, bukan secara keseluruhan; ia mesti dibaca baris demi baris

Jangan terkejut melihat komen dalam tsconfig.json; ia sebenarnya dikendalikan sebagai .jsonc. Berikan kandungan yang sama kepada JSON.parse dan ia akan menimbulkan kesilapan. Apabila anda perlu menukar antara keduanya, gunakan JSON5 kepada JSON untuk membuang komen dan koma hujung dengan satu klik.

6. Apabila tiba masanya untuk menukar format penyimpanan

JSON sesuai untuk senario di mana "strukturnya tidak tetap, manusia perlu membacanya, dan ia bergerak merentas bahasa". Jika sesuatu fail melebihi puluhan MB, struktur medannya stabil, dan anda memerlukan pertanyaan bersyarat, kekal dengan JSON hanya menyusahkan diri sendiri — beralih kepada SQLite, Parquet, atau muatkannya ke dalam pangkalan data; prestasi baca/tulis berbeza mengikut susunan magnitud. Untuk pertukaran khusus, lihat Penghuraian dan penstriman JSON besar.

Soalan Lazim

Bagaimana saya boleh memeriksa fail JSON yang terlalu besar untuk dibuka?

Jangan paksa membukanya dalam editor; membuka fail JSON 100 MB dalam VS Code akan tersekat sehingga anda mempersoalkan pilihan hidup anda. Gunakan baris arahan untuk memeriksa struktur dahulu: head -n 20 mengesahkan sama ada ia tatasusunan, jq -r 'keys[]' hanya menyenaraikan kunci peringkat atas, dan jq 'length' mengira panjang tatasusunan. Tiada satu pun daripada arahan ini memuatkan keseluruhan fail.

Mengapa suntingan saya dalam Notepad menyebabkan konfigurasi tidak berkesan?

Notepad Windows mungkin menambah BOM semasa menyimpan, dan fail dengan BOM gagal dihurai sebagai konfigurasi, jadi kandungan yang disunting tidak pernah berkesan. Syor artikel ini ialah menggunakan editor seperti VS Code, Sublime, atau Notepad++, yang dilengkapi penyerlahan sintaks JSON dan pemadanan kurungan. Jika anda sudah menggunakan Notepad, simpan semula sebagai "UTF-8 tanpa BOM" dan cuba lagi.

Bolehkah saya melayan fail JSON sebagai JSON5 dan menambah komen?

Tidak — penghurai standard tidak membenarkan komen dalam fail .json dan JSON.parse menimbulkan kesilapan serta-merta. Komen tergolong dalam fail .jsonc atau .json5 yang dibaca oleh penghurai yang sepadan. Fail seperti tsconfig.json sebenarnya dikendalikan sebagai .jsonc; berikan kandungan yang sama kepada JSON.parse dan ia gagal.