Apa itu JSON? Panduan Lengkap untuk Pemula
Apa itu JSON?
JSON (JavaScript Object Notation) adalah format pertukaran data berbasis teks yang ringan, dirancang agar mudah dibaca dan ditulis oleh manusia serta mudah di-parse dan dihasilkan oleh mesin. Awalnya berasal dari sintaks literal objek JavaScript tetapi sejak itu menjadi standar independen bahasa yang didukung oleh hampir setiap bahasa pemrograman.
Saat ini, JSON adalah format dominan untuk pertukaran data di web. JSON mendukung REST API, file konfigurasi, database NoSQL, komunikasi aplikasi mobile, dan sistem berbasis data lainnya yang tak terhitung jumlahnya. Kesederhanaan dan keberadaannya di mana-mana menjadikannya pilihan default bagi pengembang di seluruh dunia.
Aturan Sintaks JSON
JSON mengikuti seperangkat aturan sintaks yang ketat dan minimal:
- Data terstruktur dalam pasangan kunci/nilai
- Semua kunci harus berupa string dengan tanda kutip ganda (tanda kutip tunggal tidak diizinkan)
- Pasangan kunci/nilai dipisahkan oleh titik dua (
:) - Pasangan dipisahkan oleh koma (
,) - Kurung kurawal
{}membungkus objek - Kurung siku
[]membungkus array - Tidak ada koma di akhir yang diizinkan
- Tidak ada komentar yang diizinkan dalam JSON ketat
Contoh JSON Valid
{
"name": "Jane Smith",
"age": 28,
"isEmployed": true,
"skills": ["JavaScript", "Python", "SQL"],
"address": {
"street": "123 Main Street",
"city": "San Francisco",
"zipCode": "94102"
},
"phoneNumbers": null
}
Contoh JSON Tidak Valid
Koma di akhir (tidak valid):
{
"name": "Jane",
"age": 28,
}
Kunci dengan kutip tunggal (tidak valid):
{ 'name': 'Jane' }
Kunci tanpa tanda kutip (tidak valid):
{ name: "Jane" }
Tipe Data JSON
JSON mendukung tepat enam tipe data:
| Tipe | Deskripsi | Contoh |
|------|-------------|---------|
| String | Teks Unicode dengan tanda kutip ganda | "Hello, world!" |
| Number | Integer atau floating-point | 42, 3.14, -7, 1.5e10 |
| Boolean | Logika true atau false | true, false |
| Null | Nilai kosong yang disengaja | null |
| Object | Koleksi kunci/nilai tidak terurut | {"key": "value"} |
| Array | Daftar nilai terurut | [1, 2, 3] |
Yang tidak ada: tanggal, timestamp, data biner, undefined, dan fungsi tidak memiliki representasi JSON native. Tanggal biasanya disimpan sebagai string ISO 8601 berdasarkan konvensi.
JSON vs Format Data Lainnya
JSON berdampingan dengan beberapa format pertukaran data lainnya, masing-masing dengan trade-off:
- JSON vs XML: JSON lebih ringkas dan lebih cepat di-parse. XML mendukung atribut, namespace, dan skema (XSD) tetapi secara signifikan lebih verbose.
- JSON vs YAML: YAML lebih mudah dibaca manusia untuk file konfigurasi dengan dukungan komentar, tetapi sintaksnya yang sensitif indentasi bisa rentan kesalahan. JSON lebih portabel dan memiliki validasi yang lebih ketat.
- JSON vs CSV: CSV datar dan hanya tabular. JSON mendukung hierarki bersarang dan tipe data campuran.
- JSON vs Protocol Buffers: Protobuf lebih kecil dan lebih cepat untuk komunikasi mesin-ke-mesin tetapi memerlukan definisi skema dan tidak dapat dibaca manusia.
Mengapa JSON Mendominasi API Web
Beberapa faktor menjelaskan dominasi JSON dalam desain API web:
- Keberadaan di semua bahasa -- Setiap bahasa utama memiliki parser JSON native atau yang terpelihara dengan baik, menghilangkan friksi integrasi.
- Dukungan native browser --
JSON.parse()danJSON.stringify()JavaScript menjadikan JSON pilihan alami untuk aplikasi web. - Bandwidth minimal -- Sintaks ringan JSON menghasilkan payload yang lebih kecil daripada XML, mengurangi latensi dan biaya bandwidth.
- Keterbacaan manusia -- Pengembang dapat memeriksa, men-debug, dan menulis data JSON secara manual tanpa alat khusus.
- Skema fleksibel -- Tidak seperti format kaku seperti XML Schema atau Protocol Buffers, JSON mengakomodasi struktur data yang berkembang tanpa kompilasi ulang.
Kasus Penggunaan JSON yang Umum
- REST dan GraphQL API -- Format standar untuk payload request dan response.
- File konfigurasi -- Digunakan oleh alat seperti ESLint, Prettier, webpack, dan VS Code.
- Database NoSQL -- MongoDB dan CouchDB menyimpan data sebagai dokumen mirip JSON.
- Serialisasi data -- Menstrukturkan data untuk penyimpanan, transfer, atau caching.
- Komunikasi real-time -- Pesan JSON dalam stream WebSocket dan Webhook.
- Agregasi log -- Alat logging terstruktur seperti Winston, Logstash, dan Datadog menggunakan JSON untuk entri log yang dapat dicari dan difilter.
Validasi dan Formatting JSON
Saat bekerja dengan JSON, validasi sangat penting. Satu kesalahan sintaks -- koma di akhir, tanda kutip hilang, atau karakter yang tidak di-escape -- dapat merusak seluruh integrasi API atau file konfigurasi. Inspeksi manual tidak dapat diandalkan, terutama untuk dokumen JSON besar.
Cara Memvalidasi JSON
Validasi biasanya mengikuti langkah-langkah berikut:
- Parse string JSON menggunakan parser standar seperti
JSON.parse()di JavaScript atau yang setara dalam bahasa pilihan Anda. - Periksa kesalahan sintaks -- parser akan melempar error pada pelanggaran pertama dengan pesan yang menunjukkan lokasi masalah.
- Perbaiki kesalahan secara iteratif -- karena parser berhenti pada kesalahan pertama, perbaiki dan validasi ulang hingga dokumen lolos.
Sebagian besar alat JSON online menggabungkan validasi dengan formatting. Tempel JSON Anda, dan alat langsung memeriksa sintaks, menyorot kesalahan dengan nomor baris dan kolom, dan menghasilkan output yang bersih dan terindentasi. Ini jauh lebih cepat daripada debugging dengan exception parser di kode Anda.
Tips Bekerja dengan JSON
- Selalu validasi sebelum menggunakan -- Jangan pernah mengasumsikan JSON yang ditulis tangan valid.
- Gunakan linter -- Alat seperti ESLint dengan plugin JSON menangkap kesalahan sebelum mencapai production.
- Pilih library JSON -- Hasilkan JSON dengan library serialisasi daripada penggabungan string untuk menghindari kesalahan sintaks yang halus.
- Setel header Content-Type yang ketat -- Untuk API, terapkan
Content-Type: application/jsonuntuk menolak permintaan yang salah format lebih awal.
Gunakan validator dan formatter JSON online gratis untuk langsung memeriksa sintaks JSON Anda, menemukan kesalahan, dan memformat data Anda agar dapat dibaca. Baik Anda pemula yang belajar dasar-dasar maupun pengembang berpengalaman yang men-debug API production, alat JSON Formatter & Validator kami membantu Anda bekerja dengan data JSON secara efisien.