Apa itu JSON, dan apa gunanya dalam pemrograman?

Apa itu JSON?

Kita mulai dari pengertian JSON dulu…

JSON (JavaScript Object Notation) adalah sebuah format data yang digunakan untuk pertukaran dan penyimpanan data. 1

Kata kunci yang perlu diingat:“pertukaran & penyimpanan data”

JSON merupakan bagian (subset) dari Javascript. JSON bisa dibaca dengan berbagai macam bahasa pemrograman seperti C, C++, C#, Java, Javascript Perl, Python, dan banyak lagi.

Hal ini membuat JSON menjadi bahasa yang ideal untuk perturakan data antar aplikasi.

JSON bahkan mendominasi pendahulunya si XML (eXtensible Markup Language)

Kalau dibandingkan dengan XML, JSON lebih sederhana dan mudah dibaca.

Perbandingan JSON dengan XMLOleh sebab itu, lebih banyak yang menggunakan JSON daripada XML.

Berikut ini grafik penggunaan JSON dibandingkan dengan XML, YAML, CSV, dan protocol-buffers.

Grafik penggunaan JSON di Dunia

Sejarah Singkat JSON

JSON pertamakali dipopulerkan oleh Douglas Crockford. Seorang software engineer yang juga terlibat dalam pengembangan bahasa pemrograman Javascript. 2

Doglas Crockford
Doglas Crockford

JSON tidak ditemukan oleh satu orang saja. Dulu namanya belum JSON…

Artinya kata “JSON” belum ada. Orang-oarang hanya mengenal Objek Javascript yang dikirim melalui jaringan.

Sejak meledaknya teknologi AJAX pada tahun 2000. JSON mulai diperkenalkan dan pada tahun 2001, domain json.orgmulai mengudara.

Hingga saat ini JSON banyak digunakan di mana-mana.

Penerapan JSON dalam Pemrograman

JSON biasanya digunakan sebagai format standar untuk bertukar data antar aplikasi.

Pertukaran data antar aplikasi dengan JSONTapi sebenarnya tidak hanya itu saja, masih ada fungsi lain dari JSON.

Berikut ini beberapa penerapan JSON yang pernah saya temui:

Struktur Dasar JSON

Coba perhatikan stuktur JSON ini.

Struktur dasar JSONIni adalah struktur paling sederhana…

JSON selalu dimulai dengan tanda kurung kurawal { dan ditutup dengan kurung }.

Lalu di dalam kurung kurawal, berisi data yang format key dan value. Jika terdapat lebih dari satu data, maka dipisah dengan tanda koma dan di data terakhir tidak diberikan koma.

Format JSON objekLalu key dan valude dipisah dengan titik dua.

Oh iya, untuk value…

Kita bisa memberikan tipe data apa pun. Bahkan juga bisa kita isi dengan array dan objek.

Berikut ini tipe data yang didukung oleh JSON.

Tipe data yang didukung oleh JSONNah untuk array, ia dibuat dengan tanda kurung siku [...].

Array pada JSONContohnya seperti ini:

{
    "name": "Dian",
    "hobbies": ["Coding", "Blogging", "Drawing"]
}

…dan untuk objek contohnya seperti ini:

{
    "name": "petanikode",
    "url": "https://www.petanikdoe.com",
    "rank": 1,
    "socialmedia": {
        "facebook": "petanikode",
        "twitter": "petanikode",
        "instagram": "petanikode",
        "youtube": "petanikode",
        "github": "petanikode"
    }
}

Perhatikan pada key socialmedia di sana kita memberikan nilainya dengan objek.

Cara Produksi dan Konsumsi Data JSON

Setiap bahasa pemrograman memiliki cara yang berbeda-beda untuk memproduksi (membuat) dan mengkonsumsi data JSON.

Pada Javascript, kita bisa gunakan fungsiJSON.stringify() untuk membuat JSON dari objek Javascript.

Contoh:

// objek javascript
var person = {
    name: "Dian",
    age: 23
}

// string JSON
var jsonString = JSON.stringify(person);

// maka akan menghasilkan:
// {"name":"Dian","age":23}

Pada Java, kita bisa menggunakan libraryGson untuk melakukan serialisasi (membuat) dan deserialisasi data JSON.

Serialisasi dan deserialisasi JSONPada bahasa pemrograman Python, kita dapat menggunakan modul json untuk membuat dan membaca (konsumsi) data JSON.

Contoh:

>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> print json.dumps("\"foo\bar")
"\"foo\bar"
>>> print json.dumps(u'\u1234')
"\u1234"
>>> print json.dumps('\\')
"\\"
>>> print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)
{"a": 0, "b": 0, "c": 0}
>>> from StringIO import StringIO
>>> io = StringIO()
>>> json.dump(['streaming API'], io)
>>> io.getvalue()
'["streaming API"]'

Contoh lagi:

import json

# dictionary
person = {
    "name": "Dian",
    "age": 23
}

# Membuat JSON dari dictionary
json.dumps(person)

# Maka akan menghasilkan:
# '{"age": 23, "name": "Dian"}'

Pada bahasa pemrograman PHP, kita bisa menggunakan fungsi json_encode()untuk menghasilkan JSON dari Array asosiatif dan fungsi json_decode() untuk mengubah JSON menjadi Array.

Contoh:

<?php

// data dengan array assosiatif
$person = [
    "name" => "Dian",
    "age" => 23
];

// membuat JSON dari array
echo json_encode($person);

// maka akan menghasilkan:
// {"name":"Dian","age":23}
?>

Intinya, setiap bahasa pemrograman memiliki fungsi, modul, dan library tersendiri untuk membuat dan membaca data JSON.