Apa itu JSON? Format yang lebih baik untuk pertukaran data

JavaScript Object Notation adalah representasi data terstruktur berbasis teks tanpa skema yang didasarkan pada key-value pair dan daftar terurut. Meskipun JSON berasal dari JavaScript, JSON didukung baik secara native atau melalui pustaka di sebagian besar bahasa pemrograman utama. JSON umumnya, tetapi tidak eksklusif, digunakan untuk bertukar informasi antara klien web dan server web. 

Selama 15 tahun terakhir, JSON telah ada di mana-mana di web. Saat ini, format ini adalah format pilihan untuk hampir semua layanan web yang tersedia untuk umum, dan juga sering digunakan untuk layanan web pribadi.

Popularitas JSON juga menghasilkan dukungan JSON asli oleh banyak database. Database relasional seperti PostgreSQL dan MySQL sekarang dikirimkan dengan dukungan asli untuk menyimpan dan menanyakan data JSON. Database NoSQL seperti MongoDB dan Neo4j juga mendukung JSON, meskipun MongoDB menggunakan versi biner JSON yang sedikit dimodifikasi di belakang layar.

Pada artikel ini, kita akan melihat sekilas JSON dan membahas dari mana asalnya, kelebihannya dibandingkan XML, kekurangannya, kapan Anda harus menggunakannya, dan kapan Anda harus mempertimbangkan alternatifnya. Tapi pertama-tama, mari selami intisari dari seperti apa JSON dalam praktiknya.

Contoh JSON

Berikut adalah contoh data yang dikodekan di JSON:

{

  “FirstName”: “Jonathan”,

  “LastName”: “Freeman”,

  “LoginCount”: 4,

  “IsWriter”: benar,

  “WorksWith”: [“Spantree Technology Group”, “”],

  "Hewan peliharaan": [

    {

      “Nama”: “Lilly”,

      “Type”: “Raccoon”

    }

  ]

}

Struktur di atas dengan jelas mendefinisikan beberapa atribut seseorang. Ini mencakup nama depan dan belakang, berapa kali orang tersebut masuk, apakah orang ini seorang penulis, daftar perusahaan tempat orang tersebut bekerja, dan daftar hewan peliharaan orang tersebut (hanya satu, dalam hal ini). Struktur seperti di atas dapat diteruskan dari server ke browser web atau aplikasi seluler, yang kemudian akan melakukan beberapa tindakan seperti menampilkan data atau menyimpannya untuk referensi nanti.

JSON adalah format data generik dengan jumlah tipe nilai minimal: string, angka, boolean, daftar, objek, dan null. Meskipun notasi adalah bagian dari JavaScript, jenis ini direpresentasikan dalam semua bahasa pemrograman umum, menjadikan JSON kandidat yang baik untuk mengirimkan data melintasi celah bahasa.

File JSON

Data JSON disimpan dalam file yang diakhiri dengan ekstensi .json. Sesuai dengan etos JSON yang dapat dibaca manusia, ini hanyalah file teks biasa dan dapat dengan mudah dibuka dan diperiksa. Seperti yang dijelaskan oleh blog SQLizer, ini juga merupakan kunci untuk interoperabilitas JSON yang lebih luas, karena hampir setiap bahasa yang Anda beri nama dapat membaca dan memproses file teks biasa, dan mereka mudah dikirim melalui Internet.

Mengapa saya harus menggunakan JSON? 

Untuk memahami kegunaan dan pentingnya JSON, kita harus memahami sedikit tentang sejarah interaktivitas di web. 

Di awal tahun 2000-an, interaktivitas di web mulai berubah. Pada saat itu, browser berfungsi terutama sebagai klien bodoh untuk menampilkan informasi, dan server melakukan semua kerja keras untuk menyiapkan konten untuk ditampilkan. Saat pengguna mengklik link atau tombol di browser, permintaan akan dikirim ke server, server akan menyiapkan informasi yang diperlukan sebagai HTML, dan browser akan membuat HTML sebagai halaman baru. Pola ini lamban dan tidak efisien, mengharuskan browser merender ulang semua yang ada di halaman meskipun hanya sebagian halaman yang berubah.

Karena pemuatan ulang halaman penuh itu mahal, pengembang web mencari teknologi yang lebih baru untuk meningkatkan pengalaman pengguna secara keseluruhan. Sementara itu, kemampuan membuat permintaan web di latar belakang saat halaman ditampilkan, yang baru-baru ini diperkenalkan di Internet Explorer 5, terbukti menjadi pendekatan yang layak untuk memuat data secara bertahap untuk ditampilkan. Alih-alih memuat ulang seluruh konten halaman, mengklik tombol segarkan akan memicu permintaan web yang akan dimuat di latar belakang. Saat konten dimuat, data dapat dimanipulasi, disimpan, dan ditampilkan di halaman menggunakan JavaScript, bahasa pemrograman universal di browser.

REST vs. SOAP: Koneksi JSON

Awalnya, data ini ditransfer dalam format XML (lihat di bawah untuk contoh) menggunakan protokol pengiriman pesan yang disebut SOAP (Simple Object Access Protocol). Tapi XML bertele-tele dan sulit dikelola dalam JavaScript. JavaScript sudah memiliki objek, yang merupakan cara untuk mengekspresikan data dalam bahasa tersebut, jadi Douglas Crockford mengambil subset dari ekspresi tersebut sebagai spesifikasi untuk format pertukaran data baru dan menamainya JSON. JSON jauh lebih mudah dibaca dan diurai oleh browser.

Selama tahun 00-an, teknologi layanan Web lain, yang disebut Representational State Transfer, atau REST, mulai mengambil alih SOAP untuk tujuan mentransfer data. Salah satu keuntungan besar pemrograman menggunakan REST API adalah Anda dapat menggunakan berbagai format data - tidak hanya XML, tetapi JSON dan HTML juga. Karena pengembang web lebih memilih JSON daripada XML, mereka juga menyukai REST daripada SOAP. Seperti yang dikatakan Kostyantyn Kharchenko di blog Svitla, "Dalam banyak hal, keberhasilan REST disebabkan oleh format JSON karena penggunaannya yang mudah di berbagai platform."

Saat ini, JSON adalah standar de-facto untuk bertukar data antara klien web dan seluler serta layanan back-end. 

JSON vs. XML

Seperti disebutkan di atas, alternatif utama JSON adalah XML. Namun, XML menjadi semakin tidak umum di sistem baru, dan mudah untuk mengetahui alasannya. Di bawah ini adalah versi data yang Anda lihat di atas, kali ini dalam XML:

  Jonathan

  Warga kehormatan

  4

  benar

    Grup Teknologi Spantree

      Lilly

      Rakun

Selain menjadi lebih bertele-tele (dalam kasus ini persis dua kali lebih panjang), XML juga memperkenalkan beberapa ambiguitas saat mengurai ke dalam struktur data yang ramah JavaScript. Mengonversi XML ke objek JavaScript dapat memerlukan puluhan hingga ratusan baris kode dan pada akhirnya membutuhkan penyesuaian berdasarkan objek tertentu yang sedang diurai. Mengonversi JSON menjadi objek JavaScript memerlukan satu baris kode dan tidak memerlukan pengetahuan sebelumnya tentang objek yang sedang diurai.

Batasan JSON

Meskipun JSON adalah format data yang relatif ringkas dan fleksibel yang mudah digunakan dalam banyak bahasa pemrograman, ada beberapa kekurangan dari formatnya. Berikut lima batasan utama: 

  1. Tidak ada skema. Di satu sisi, itu berarti Anda memiliki fleksibilitas total untuk merepresentasikan data dengan cara apa pun yang Anda inginkan. Di sisi lain, ini berarti Anda dapat dengan mudah membuat data yang cacat secara tidak sengaja.
  2. Hanya satu jenis nomor: format titik-mengambang presisi ganda IEEE-754. Itu cukup banyak, tetapi itu berarti Anda tidak dapat memanfaatkan jenis angka yang beragam dan bernuansa yang tersedia dalam banyak bahasa pemrograman.
  3. Tidak ada tipe tanggal. Kelalaian ini berarti pengembang harus menggunakan representasi string dari tanggal, yang menyebabkan perbedaan format, atau harus mewakili tanggal dalam bentuk milidetik sejak periode (1 Januari 1970).
  4. Tidak ada komentar. Hal ini tidak memungkinkan untuk membuat anotasi bidang secara sebaris, yang membutuhkan dokumentasi tambahan dan meningkatkan kemungkinan kesalahpahaman.
  5. Verbositas. Meskipun JSON kurang bertele-tele dari XML, itu bukan format pertukaran data yang paling ringkas. Untuk layanan volume tinggi atau tujuan khusus, Anda pasti ingin menggunakan format data yang lebih efisien.

Kapan saya harus menggunakan JSON?

Jika Anda menulis perangkat lunak yang berkomunikasi dengan browser atau aplikasi seluler asli, Anda harus menggunakan JSON sebagai format datanya. Menggunakan format seperti XML adalah pilihan yang sudah kadaluwarsa dan bendera merah bagi talenta terdepan dan seluler yang sebaliknya ingin Anda tarik.

Dalam kasus komunikasi server-ke-server, Anda mungkin lebih baik menggunakan kerangka kerja serialisasi seperti Apache Avro atau Apache Thrift. JSON bukanlah pilihan yang buruk di sini, dan mungkin masih sesuai dengan yang Anda butuhkan, tetapi jawabannya tidak sejelas untuk web dan komunikasi seluler.

Jika Anda menggunakan database NoSQL, Anda cukup terjebak dengan apa pun yang diberikan database tersebut. Dalam database relasional yang mendukung JSON sebagai suatu tipe, aturan praktis yang baik adalah menggunakannya sesedikit mungkin. Database relasional telah disetel untuk data terstruktur yang sesuai dengan skema tertentu. Meskipun sebagian besar sekarang mendukung data yang lebih fleksibel dalam bentuk JSON, Anda dapat mengharapkan kinerja yang bagus saat membuat kueri untuk properti dalam objek JSON tersebut.

JSON adalah format de facto yang ada di mana-mana untuk mengirim data antara server web dan browser serta aplikasi seluler. Desain dan fleksibilitasnya yang sederhana membuatnya mudah dibaca dan dipahami, dan dalam banyak kasus, mudah dimanipulasi dalam bahasa pemrograman pilihan Anda. Kurangnya skema yang ketat memungkinkan fleksibilitas format, tetapi fleksibilitas itu terkadang menyulitkan untuk memastikan bahwa Anda membaca dan menulis JSON dengan benar.

Parser JSON

Bagian dari kode aplikasi yang mengubah data yang disimpan sebagai JSON menjadi format yang dapat digunakan aplikasi disebut parser. JavaScript, seperti yang Anda harapkan, menyertakan pengurai asli, metode JSON.parse ().

Anda mungkin harus melakukan sedikit lebih banyak pekerjaan untuk bekerja dengan JSON dalam bahasa yang sangat diketik seperti Scala atau Elm, tetapi adopsi JSON yang meluas berarti ada perpustakaan dan utilitas untuk membantu Anda melalui semua bagian tersulit. 

Situs web json.org menyertakan daftar lengkap pustaka kode yang dapat Anda gunakan untuk mengurai, membuat, dan memanipulasi JSON, dalam berbagai bahasa seperti Python, C #, dan COBOL.

Utilitas JSON

Jika Anda ingin memanipulasi atau memeriksa data yang dikodekan JSON secara langsung, tanpa menulis kode sendiri, ada sejumlah utilitas online yang dapat membantu Anda. Semua program yang setara dalam pustaka kode yang ditautkan di atas, tetapi Anda dapat memotong dan menempelkan kode JSON ke dalam alat berbasis browser ini untuk membantu Anda memahami JSON dengan lebih baik atau melakukan analisis cepat dan kotor:

  • JSON Formatter: JSONLint akan memformat dan memvalidasi kode JSON arbitrer.
  • JSON Viewer: Stack.hu memiliki situs yang akan membuat pohon interaktif untuk membantu Anda memahami struktur kode JSON Anda. 
  • JSON Beautifier: Jika Anda ingin "mencetak cantik" kode JSON Anda, dengan pewarnaan sintaks dan sejenisnya, Prettydiff dapat membantu Anda. 
  • JSON Converter: Perlu dengan cepat memindahkan data dari format JSON ke format lain? Convertcsv.com memiliki alat yang dapat mengonversi JSON ke CSV (yang kemudian dapat dibuka di Excel) atau XML.

Tutorial JSON

Siap untuk menyelami dan mempelajari lebih lanjut tentang cara bekerja dengan JSON dalam aplikasi interaktif Anda? Jaringan Pengembang Mozilla memiliki tutorial bagus yang akan membantu Anda memulai dengan JSON dan JavaScript. Jika Anda siap untuk beralih ke bahasa lain, lihat tutorial tentang menggunakan JSON dengan Java (dari Baeldung), dengan Python (dari DataCamp), atau dengan C # (dari Bantuan Pengujian Perangkat Lunak). Semoga berhasil!

Josh Fruhlinger berkontribusi untuk artikel ini.