Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Apa itu JSON dan Bagaimana Cara Menggunakannya?

Posted on August 12, 2022

JSON (JavaScript Object Notation) adalah format standar untuk mewakili data terstruktur. Meskipun JSON tumbuh dari bahasa pemrograman JavaScript, sekarang JSON menjadi metode pertukaran data antar sistem yang ada di mana-mana. Sebagian besar API modern menerima permintaan JSON dan mengeluarkan respons JSON sehingga berguna untuk memiliki pengetahuan yang baik tentang format dan fitur-fiturnya.

Dalam artikel ini, kami akan menjelaskan apa itu JSON, bagaimana JSON mengekspresikan tipe data yang berbeda, dan caranya Anda dapat memproduksi dan mengkonsumsinya dalam bahasa pemrograman populer. Kami juga akan membahas beberapa batasan JSON dan alternatif yang muncul.

Dasar-Dasar JSON

JSON awalnya dirancang oleh Douglas Crockford sebagai format stateless untuk mengkomunikasikan data antara browser dan server. Kembali di awal 2000-an, situs web mulai mengambil data tambahan secara asinkron dari server mereka, setelah pemuatan halaman awal. Sebagai format berbasis teks yang diturunkan dari JavaScript, JSON mempermudah pengambilan dan penggunaan data dalam aplikasi ini. Spesifikasi tersebut akhirnya distandarisasi sebagai ECMA-404 pada 2013.

JSON selalu ditransmisikan sebagai string. String ini dapat didekodekan menjadi berbagai tipe data dasar, termasuk angka, boolean, array, dan objek. Ini berarti hierarki dan hubungan objek dapat dipertahankan selama transmisi, kemudian dipasang kembali di sisi penerima dengan cara yang sesuai untuk lingkungan pemrograman.

A Contoh JSON Dasar

Ini adalah representasi JSON dari entri blog:

{ “id”: 1001, ” title”: “Apa itu JSON?”, “penulis”: { “id”: 1, “name”: “James Walker” }, “tags”: [“api”, “json”, “programming”], ” diterbitkan”: false, “publishedTimestamp”: null }

Contoh ini menunjukkan semua tipe data JSON. Ini juga menggambarkan penyingkatan data berformat JSON, salah satu karakteristik yang membuatnya sangat menarik untuk digunakan dalam API. Selain itu, JSON relatif mudah dibaca apa adanya, tidak seperti format verbose lainnya seperti XML.

JSON Data Types

Enam jenis data dapat direpresentasikan secara native dalam JSON:

Strings – String ditulis di antara tanda kutip ganda; karakter dapat diloloskan menggunakan garis miring terbalik. Angka – Angka ditulis sebagai angka tanpa tanda kutip. Anda dapat memasukkan komponen pecahan untuk menunjukkan float. Sebagian besar implementasi parsing JSON mengasumsikan bilangan bulat ketika tidak ada titik desimal yang ada. Booleans – Nilai literal true dan false didukung. Null – Nilai literal null dapat digunakan untuk menandakan nilai kosong atau dihilangkan. Array – Array adalah daftar sederhana dilambangkan dengan tanda kurung siku. Setiap elemen dalam daftar dipisahkan dengan koma. Array dapat berisi sejumlah item dan mereka dapat menggunakan semua tipe data yang didukung. Objek – Objek dibuat dengan tanda kurung kurawal. Mereka adalah kumpulan pasangan nilai kunci di mana kuncinya adalah string, dibungkus dengan tanda kutip ganda. Setiap kunci memiliki nilai yang dapat mengambil salah satu tipe data yang tersedia. Anda dapat membuat sarang objek untuk membuat hierarki berjenjang. Sebuah koma harus mengikuti setiap nilai, yang menandakan akhir dari parser pasangan nilai kunci tersebut.

JSON secara otomatis mengubah tipe data ini menjadi struktur yang sesuai dengan bahasanya. Anda tidak perlu memasukkan id secara manual ke bilangan bulat, misalnya. Parsing seluruh string JSON sudah cukup untuk memetakan nilai kembali ke format data aslinya.

Semantics dan Validation

JSON memiliki aturan tertentu yang perlu dipatuhi saat Anda menyandikan data. String yang tidak mematuhi sintaks tidak akan dapat diuraikan oleh konsumen.

Sangat penting untuk memperhatikan tanda kutip di sekitar string dan kunci objek. Anda juga harus memastikan tanda koma digunakan setelah setiap entri dalam objek atau larik. JSON tidak mengizinkan tanda koma setelah entri terakhir meskipun – secara tidak sengaja memasukkannya adalah penyebab umum kesalahan validasi. Sebagian besar editor teks akan menyoroti masalah sintaks untuk Anda, membantu mengungkap kesalahan.

Meskipun titik perjalanan umum ini, JSON adalah salah satu format data termudah untuk ditulis dengan tangan. Kebanyakan orang menemukan sintaks cepat dan nyaman setelah mereka terbiasa dengannya. Secara keseluruhan JSON cenderung kurang rawan kesalahan daripada XML, di mana tag pembuka dan penutup yang tidak cocok, deklarasi skema yang tidak valid, dan masalah pengkodean karakter sering menyebabkan masalah.

Menunjuk Konten JSON

Ekstensi .json biasanya digunakan saat JSON disimpan ke file. Konten JSON memiliki aplikasi/json tipe MIME standar, meskipun teks/jsonis terkadang digunakan untuk alasan kompatibilitas. Saat ini Anda harus mengandalkan application/json untuk Accept dan Content-Type HTTP headers.

Kebanyakan API yang menggunakan JSON akan merangkum semuanya dalam objek tingkat atas:

{ “error”: 1000 }

Ini tidak diperlukan – tipe literal valid sebagai node tingkat atas dalam sebuah file, jadi contoh berikut adalah semua JSON yang valid juga:

1000truenull

Mereka akan mendekode ke skalar masing-masing dalam bahasa pemrograman Anda.

Bekerja Dengan JSON

Sebagian besar bahasa pemrograman memiliki dukungan JSON bawaan. Berikut ini cara berinteraksi dengan data JSON di beberapa lingkungan populer.

JavaScript

Dalam JavaScript, metode JSON.stringify() dan JSON.parse() digunakan untuk mengkodekan dan mendekode string JSON:

const post ={ id:1001, title:”What Is JSON?”, penulis:{ id:1, nama:”James Walker”}}; const encodedJson = JSON.stringify(post); // {“id”: 1001, “title”: “Apa itu JSON?”, …} console.log(encodedJson); const decodeJson = JSON.parse(encodedJson); // James Walker console.log(decodedJson.author.name);PHP

Fungsi yang setara dalam PHP adalah json_encode() dan json_decode():

$post=[“id”=>1001,”title”=>”Apa itu JSON ?”,”penulis”=>[“id”=>1,”nama”=>”James Walker”]]; $encodedJson=json_encode($post); // {“id”: 1001, “title”: “Apa itu JSON?”, …}echo$encodedJson; $decodedJson=json_decode($encodedJson,true); // James Walkerecho$decodedJson[“author”][“name”];Python

Python menyediakan json.dumps() dan json.loads() untuk membuat serial dan deserialize masing-masing:

import json   post ={“id”: 1001,”title” : “Apa itu JSON?”,”author”: {“id”: 1,”name”: “James Walker”}}   encodedJson = json.dumps(post)   # {“id”: 1001, “title”: ” Apa itu JSON?”, …}print(encodedJson)   decodedJson = json.loads(encodedJson)   # James Walkerprint(decodedJson[“author”][“name”])Ruby

Ruby menawarkan JSON.generate dan JSON.parse:

require” json”   post = {“id”=>1001, “title”=>”Apa itu JSON?”, “author”=>{“id”=>1, “name”=>”James Walker”}}   encodedJson = JSON.generate(post)   # {“id”: 1001, “title”: “Apa itu JSON?”, …}puts encodedJson   decodedJson = JSON.parse(encodedJson)   # James Walkerputs decodedJson[“author”][” name”]JSON Limitations

JSON adalah format ringan yang berfokus pada penyampaian nilai dalam struktur data Anda. Ini membuatnya cepat untuk diurai dan mudah dikerjakan tetapi berarti ada kekurangan yang dapat menyebabkan frustrasi. Berikut adalah beberapa masalah terbesar.

No Comments

JSON data tidak dapat menyertakan komentar. Kurangnya anotasi mengurangi kejelasan dan memaksa Anda untuk meletakkan dokumentasi di tempat lain. Ini dapat membuat JSON tidak cocok untuk situasi seperti file konfigurasi, di mana modifikasi jarang terjadi dan tujuan bidang mungkin tidak jelas.

No Schemas

JSON tidak mengizinkan Anda menentukan skema untuk data Anda. Tidak ada cara untuk menegakkan bahwa id adalah bidang bilangan bulat yang diperlukan, misalnya. Hal ini dapat menyebabkan struktur data yang tidak sengaja rusak.

No References

Fields tidak dapat mereferensikan nilai lain dalam struktur data. Ini sering menyebabkan pengulangan yang meningkatkan ukuran file. Kembali ke contoh posting blog sebelumnya, Anda dapat memiliki daftar posting blog sebagai berikut:

{ “posts”: [ { “id”: 1001, “title”: “What is JSON?”, “author”: { “id”: 1, “name”: “James Walker” } }, { “id”: 1002, “title”: “Apa itu SaaS?”, “author”: { “id”: 1, “name”: “James Walker” } } ] }

Kedua posting memiliki penulis yang sama tetapi informasi yang terkait dengan objek tersebut harus diduplikasi. Dalam dunia yang ideal, implementasi parser JSON akan dapat menghasilkan struktur yang ditunjukkan di atas dari input yang mirip dengan yang berikut:

{ “posts”: [ { “id”: 1001, “title”: “Apa itu JSON?”, ” author”: “{{ .authors.james }}” }, { “id”: 1002, “title”: “Apa itu SaaS?”, “author”: “{{ .authors.james }}” } ], “authors”: { “james”: { “id”: 1, “name”: “James Walker” } } }

Saat ini tidak dimungkinkan dengan JSON standar.

Tidak Ada Tipe Data Lanjutan

Keenam tipe data yang didukung menghilangkan banyak jenis nilai yang umum . JSON tidak dapat menyimpan tanggal, waktu, atau titik geolokasi secara native, jadi Anda perlu memutuskan format Anda sendiri untuk informasi ini.

Hal ini menyebabkan perbedaan yang tidak nyaman dan kasus tepi. Jika aplikasi Anda menangani stempel waktu sebagai string, seperti 2022-07-01T12:00:00+00:00, tetapi API eksternal menyajikan waktu sebagai detik setelah zaman Unix – 1657287000 – Anda harus mengingat kapan harus menggunakan masing-masing format.

JSON Alternatif

YAML adalah alternatif JSON terkemuka. Ini adalah superset dari format yang memiliki presentasi yang lebih dapat dibaca manusia, tipe data khusus, dan dukungan untuk referensi. Ini dimaksudkan untuk mengatasi sebagian besar tantangan kegunaan yang terkait dengan JSON.

YAML telah melihat adopsi yang luas untuk file konfigurasi dan dalam DevOps, IaC, dan alat observabilitas. Ini lebih jarang digunakan sebagai format pertukaran data untuk API. Kompleksitas relatif YAML berarti kurang mudah didekati oleh pendatang baru. Kesalahan sintaks kecil dapat menyebabkan kegagalan penguraian yang membingungkan.

Protocol buffers (protobufs) adalah pesaing JSON baru yang dirancang untuk membuat serial data terstruktur. Protobuf memiliki deklarasi tipe data, bidang wajib, dan dukungan untuk sebagian besar bahasa pemrograman utama. Sistem ini semakin populer sebagai cara yang lebih efisien untuk mentransmisikan data melalui jaringan.

Summary

JSON adalah format representasi data berbasis teks yang dapat mengkodekan enam tipe data yang berbeda. JSON telah menjadi inti dari ekosistem pengembangan perangkat lunak; ini didukung oleh semua bahasa pemrograman utama dan telah menjadi pilihan default untuk sebagian besar REST API yang dikembangkan selama beberapa dekade terakhir.

Meskipun kesederhanaan JSON adalah bagian dari popularitasnya, JSON juga memberlakukan batasan pada apa yang dapat Anda capai dengan format tersebut. Kurangnya dukungan untuk skema, komentar, referensi objek, dan tipe data khusus berarti beberapa aplikasi akan menemukan bahwa mereka melampaui apa yang mungkin dilakukan dengan JSON. Alternatif yang lebih muda seperti YAML dan Protobuf telah membantu mengatasi tantangan ini, sementara XML tetap menjadi pesaing untuk aplikasi yang ingin mendefinisikan skema data dan tidak mempermasalahkan verbositas.

Itulah berita seputar Apa itu JSON dan Bagaimana Cara Menggunakannya?, semoga bermanfaat. Disadur dari HowToGeek.com.

Terbaru

  • Kenapa FreeFire Advance Server Tidak Bisa Diunduh? Ini Penjelasannya!
  • Inilah Realita Biaya Hidup Mahasiswa di Bogor: Ternyata Nggak Semahal yang Kalian Kira!
  • Inilah Cara Blokir Email Spam di Gmail Biar Penyimpanan Nggak Gampang Penuh
  • Inilah Cara Aktivasi Keaktifan PTK di EMIS GTK IMP 2026 Biar Tunjangan Cair Lancar!
  • Inilah Cara Menilai Sumbangan yang Disetarakan dengan Uang Supaya Pajak Kalian Berkurang
  • Apa itu Pin di iMessage?
  • SKTP Nggak Muncul di Info GTK padahal Sudah Terbit? Ini Trik Rahasia Biar Data Langsung Update!
  • Ini Trik Nuyul Cari Cuan di Game Puzzle Farm 2026 Biar Koin Melimpah Tanpa Undang Teman
  • Inilah Ukuran Kertas Thermal 58mm ISO Di Word, Berapa dan Panduan Lengkap Memilihnya
  • Bukan Cuma Zakat! Ternyata Sumbangan Jenis Ini Bisa Ngurangin Pajak Kalian! Simak Penjelasannya
  • Inilah Caranya Mengajar Bahasa Indonesia di Amerika Serikat Lewat Beasiswa Fulbright FLTA 2026
  • Inilah 6 Rekomendasi HP yang Awet dan Tahan Lama Biar Kalian Nggak Gonta-ganti Terus!
  • Apa itu Proses BOP dan Psikotes BRI Life?
  • Ini Cara Input Tugas Tambahan Guru di EMIS GTK IMP 2026 Biar Jam Mengajar Aman!
  • APK Juice Pack Frenzy Penipuan? Benarkah Membayar atau Cuma Tipuan Iklan? Ini Faktanya!
  • Apakah Apk ReelAct Penipu? Mau Tarik 100 Dolar dari Reel Act? Cek Dulu Faktanya Biar Nggak Rugi Waktu!
  • Inilah Rekomendasi Game Turn Base Android dan PC Terbaik Buat Kalian yang Suka Strategi!
  • Inilah Cara Membuat Sertifikat di Canva dan Ukuran Standar yang Wajib Kalian Tahu
  • Inilah Aturan Zakat yang Bisa Jadi Pengurang Pajak Bruto Kalian, Sudah Tahu Belum?
  • Inilah Data Pendaftar KIP Kuliah 2026 Jalur SNBP dan Bocoran Kriteria yang Lolos!
  • Inilah Game Silent Hill: Townfall, Teror Psikologis Baru yang Bakal Bikin Kalian Gemetar di Tahun 2026!
  • Inilah Trailer Mortal Kombat 2, Johnny Cage Resmi Gabung dan Siap Hadapi Shao Kahn!
  • Inilah Spesifikasi Lengkap Samsung Galaxy S26 yang Baru Meluncur, Ternyata Harganya Naik Segini!
  • Inilah Cara Mematikan MSA Xiaomi Supaya HP Nggak Lemot dan Bebas Iklan, Ternyata Langkahnya Simpel Banget!
  • Inilah Kronologi Mobil Calya Plat D yang Viral Lawan Arus di Jakpus, Ternyata Bawa Banyak Plat Palsu!
  • Inilah Axioo Hype AI 5, Laptop AI Canggih yang Nggak Bikin Kantong Bolong!
  • Ini Loh Kejahatan Modus Phishing Google Tasks Terbaru yang Bisa Nguras Data Perusahaan Kalian
  • Inilah Poco X7 5G dan M7 Pro 5G, HP Gaming Performa Ekstrem yang Ngebikin Mabar Kalian Jadi Anti Lag!
  • Inilah Cara Mengubah Lahan Kosong Jadi Uang Lewat Strategi Land Banking
  • Ini Trik Supaya Gajian YouTube Shorts Tembus Puluhan Juta dari Penonton Bule!
  • What’s New in elementary OS 8.1.1 with Linux Kernel 6.17?
  • Microsoft Tests AI Feature to Monitor Open Apps on Windows 11 Taskbar
  • Is Google Chrome Secretly Downloading AI Models? Everything You Need to Know
  • Shotcut 2.6.2 Fixes Timeline & HEVC Crashes: What You Need to Know
  • Hyprland Desktop 0.54 Released: Adds Per-Workspace Layouts
  • Prompt AI Menyusun Script Pola Suara Karakter agar Brand Jadi Ikonik
  • Prompt AI untuk Merancang Karakter Brand yang Ikonik
  • Prompt AI Audit Konten Sesuai Karakter Brand
  • Prompt AI Merubah Postingan LinkedIn Jadi Ladang Diskusi dengan ChatGPT
  • Prompt AI: Paksa Algoritma LinkedIn Promosikan Konten Kalian
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ

©2026 emka.web.id | Design: Newspaperly WordPress Theme