JSON adalah format pertukaran data berbasis teks yang ditetapkan RFC 8259. Bentuknya hanya dua: objek, yaitu pasangan nama dan nilai di dalam kurung kurawal, dan larik, yaitu deretan nilai berurutan di dalam kurung siku. Keduanya dapat saling bersarang sedalam apa pun, dan itulah yang membuat JSON dipakai hampir semua antarmuka program masa kini.
| Bentuk JSON | Contoh | Menjadi apa di Python |
|---|---|---|
| Objek | {"nama": "Ani"} | dict |
| Larik | [1, 2, 3] | list |
| Teks | "Bandung" | str |
| Bilangan | 250000 | int atau float |
| Benar/salah dan kosong | true, false, null | True, False, None |
Nama pada objek wajib berupa teks yang diapit tanda kutip ganda. Tanda kutip tunggal tidak dikenal, dan nama tanpa apitan tidak sah, meskipun keduanya lazim di bahasa pemrograman lain. RFC 8259 menetapkan UTF-8 sebagai encoding untuk pertukaran antar-sistem.
import json
teks = '{"produk": "Kopi Gayo", "stok": 0, "impor": false}'
data = json.loads(teks)
print(data["impor"]) # False
print(json.dumps(data, ensure_ascii=False))Saat menulis kembali, json.dumps secara bawaan mengganti huruf di luar ASCII menjadi urutan pelarian seperti \u00e9. Hasilnya tetap sah dan tetap terbaca program lain, tetapi tidak terbaca mata manusia. Argumen ensure_ascii=False membiarkan huruf aslinya utuh, dengan syarat berkasnya ditulis sebagai UTF-8.