Parser JSON
JSON (JavaScript Object Notation) adalah format pertukaran data standar untuk API web dan file konfigurasi. Alat ini mengurai, memvalidasi, dan mem-pretty-print JSON dengan tampilan pohon interaktif untuk menjelajahi struktur bersarang. Mengonversi antara JSON dan format lain seperti YAML atau TOML.
Spesifikasi
Kasus Penggunaan Umum
- Memformat respons API yang diminifikasi untuk debugging
- Memvalidasi file konfigurasi JSON sebelum deployment
- Mengonversi respons API ke YAML untuk dokumentasi
- Menjelajahi struktur data bersarang dalam dari database NoSQL
- Menyiapkan payload JSON untuk alat pengujian API seperti Postman atau curl
Fitur
- Memvalidasi sintaks JSON dengan pesan error yang jelas dan nomor baris
- Pretty-print dengan indentasi 2 spasi
- Meminifikasi JSON untuk penyimpanan atau transmisi yang ringkas
- Mengonversi ke format YAML, TOML, atau XML
- Tampilan pohon interaktif dengan node yang dapat diciutkan
- Menyalin nilai atau sub-pohon individual
Contoh
API Response
Coba →A typical REST API response with nested objects and arrays.
{
"users": [
{
"id": 1,
"name": "Alice",
"email": "alice@example.com"
},
{
"id": 2,
"name": "Bob",
"email": "bob@example.com"
}
],
"total": 2
}Application Configuration
Coba →Nested configuration with database and cache settings.
{
"database": {
"host": "localhost",
"port": 5432,
"name": "myapp"
},
"cache": {
"enabled": true,
"ttl": 3600
}
}Tips
- Kunci JSON harus berupa string dengan tanda kutip ganda. Tanda kutip tunggal tidak valid.
- Koma di akhir setelah elemen terakhir tidak diizinkan dalam JSON standar.
- Untuk JSON dengan komentar, gunakan parser JSONC sebagai gantinya.
Pemahaman Parser JSON
JSON (JavaScript Object Notation) adalah format pertukaran data universal dari web modern. Didefinisikan oleh RFC 8259 dan ECMA-404, JSON merepresentasikan data terstruktur menggunakan enam tipe: string, angka, boolean, null, array, dan objek. Kesederhanaannya dan pemetaan langsung ke struktur data di hampir setiap bahasa pemrograman telah menjadikannya format default untuk REST API, file konfigurasi, database dokumen, dan komunikasi antar layanan.
Sintaks JSON adalah subset ketat dari notasi literal objek JavaScript, tetapi dengan pembatasan penting: kunci harus berupa string dengan tanda kutip ganda, koma di akhir tidak diizinkan, dan komentar tidak didukung. Batasan ini memastikan penguraian yang tidak ambigu di seluruh implementasi. Dokumen JSON yang valid harus memiliki objek atau array sebagai elemen root (meskipun RFC 8259 secara teknis mengizinkan nilai JSON apapun di level atas, sebagian besar API mengharapkan objek atau array).
Dalam pengembangan web, JSON adalah format permintaan dan respons standar untuk REST dan GraphQL API. Browser menyediakan method native JSON.parse() dan JSON.stringify(), dan API fetch menyertakan method convenience .json(). Framework server dalam Node.js, Python (Flask, Django), Go, dan bahasa lain semuanya menyertakan serialisasi JSON bawaan. Database dokumen seperti MongoDB, CouchDB, dan DynamoDB menyimpan data secara native dalam format JSON atau yang mirip JSON (BSON untuk MongoDB).
Keterbatasan JSON telah melahirkan beberapa ekstensi dan alternatif: JSONC menambahkan komentar untuk file konfigurasi, JSON5 melonggarkan aturan sintaks, JSON Lines (JSONL/NDJSON) menggunakan satu objek JSON per baris untuk streaming, dan JSON Schema menyediakan kosakata untuk memvalidasi struktur dokumen JSON. Untuk efisiensi biner, format seperti BSON, MessagePack, dan CBOR menawarkan serialisasi yang kompatibel JSON yang ringkas. Meskipun ada alternatif ini, JSON biasa tetap menjadi format yang dominan karena dukungan alat universalnya dan keterbacaan oleh manusia.
JSON secara sengaja tidak mendukung komentar. Douglas Crockford, yang mempopulerkan format ini, mengecualikannya untuk menjaga kesederhanaan dan mencegah penyalahgunaannya untuk direktif penguraian (seperti yang terjadi di XML). Untuk file konfigurasi di mana dokumentasi inline dibutuhkan, JSONC (JSON with Comments) didukung secara native oleh alat seperti VS Code, TypeScript, dan ESLint. YAML dan TOML juga merupakan alternatif kuat ketika file konfigurasi mendapat manfaat dari komentar, string multi-baris, atau header seksi yang jelas.
Meskipun berasal dari JavaScript, JSON tidak sama dengan literal objek JavaScript. JSON memberlakukan aturan sintaks yang ketat: semua kunci harus dikutip ganda, hanya string yang dikutip ganda yang diizinkan, koma di akhir dilarang, dan nilai seperti undefined dan fungsi tidak dapat direpresentasikan. JSON.parse() mengonversi string JSON menjadi objek JavaScript, sementara JSON.stringify() menserialisasi objek kembali menjadi string JSON. Tidak semua objek JavaScript dapat bolak-balik melalui JSON — yang mengandung fungsi, undefined, Infinity, atau referensi melingkar akan kehilangan data atau melempar error selama serialisasi.
Untuk file JSON yang lebih besar dari beberapa megabyte, memuat seluruh dokumen ke memori sekaligus dapat menyebabkan masalah performa. Parser streaming — library bergaya SAX seperti clarinet dan oboe.js untuk JavaScript, atau ijson untuk Python — memproses dokumen secara inkremental tanpa menyangga seluruh struktur. Format JSON Lines (JSONL), di mana setiap baris adalah objek JSON terpisah, ideal untuk dataset besar karena record dapat diproses satu per satu. API yang mengembalikan respons besar harus mengimplementasikan paginasi untuk menjaga ukuran respons individual tetap terkelola. Saat memilih antara JSON dan format lain, JSON adalah default paling aman untuk komunikasi API dan pertukaran data karena setiap bahasa dan alat mendukungnya tanpa dependensi tambahan. YAML unggul untuk konfigurasi yang diedit oleh manusia, seperti manifest Kubernetes dan pipeline CI/CD. TOML paling baik untuk konfigurasi aplikasi yang mendapat manfaat dari header seksi eksplisit dan pasangan kunci-nilai sederhana, seperti Cargo.toml dan pyproject.toml.