0Pricing
Lua Academy · Pelajaran

Mengapa JSON

Dasar-Dasar pertukaran data.

Mengapa JSON adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.

Apa Itu JSON?

JSON (JavaScript Object Notation) adalah format teks ringan untuk menyimpan dan bertukar data. Format ini mudah dibaca manusia dan tidak bergantung pada bahasa pemrograman.

Hampir setiap API web, berkas konfigurasi, dan basis data menggunakan JSON. Dengan mempelajari cara mengonversi antara JSON dan tabel Lua, skrip Anda dapat berkomunikasi dengan dunia luar.

JSON Mirip Lua

Objek JSON menggunakan kurung kurawal dengan pasangan kunci-nilai, sedangkan larik menggunakan kurung siku. Bentuk ini hampir sepenuhnya cocok dengan tabel Lua.

Objek JSON menjadi tabel Lua dengan kunci string; larik JSON menjadi tabel Lua dengan indeks numerik yang dimulai dari 1.

-- JSON text
-- {"name": "Ada", "age": 36}

-- Equivalent Lua table
local person = { name = "Ada", age = 36 }
print(person.name)

Lua Tidak Memiliki JSON Bawaan

Tidak seperti beberapa bahasa lain, Lua standar tidak menyertakan dukungan JSON. Anda harus menggunakan pustaka.

Dua pilihan yang paling umum adalah dkjson (Lua murni, mudah dipasang) dan lua-cjson (pustaka C yang cepat). Keduanya menyediakan fungsi encode dan decode.

Memuat Pustaka JSON

Anda memuat pustaka JSON dengan require, sama seperti modul Lua lainnya. Tabel yang dikembalikan berisi fungsi-fungsi yang Anda perlukan.

Di sini, kita memuat dkjson dan mengikatnya ke variabel lokal bernama json.

local json = require("dkjson")
-- now json.encode and json.decode are ready

Dua Operasi Inti

Hanya ada dua hal yang perlu Anda lakukan dengan JSON: decode dan encode.

Penguraian mengubah string JSON menjadi tabel Lua yang dapat Anda baca. Pengodean mengubah tabel Lua kembali menjadi string JSON yang dapat Anda kirim atau simpan.

local json = require("dkjson")
local t = json.decode('{"ok": true}')  -- string -> table
local s = json.encode(t)                -- table -> string

Contoh decode

Saat menerima teks JSON dari berkas atau API, json.decode menguraikannya menjadi tabel Lua yang dapat digunakan.

Setelah diuraikan, Anda mengakses bidang-bidangnya dengan sintaks Lua biasa.

local json = require("dkjson")
local text = '{"city": "Oslo", "temp": 7}'
local data = json.decode(text)
print(data.city, data.temp)

Contoh encode

Untuk membuat JSON, isi sebuah tabel Lua lalu teruskan tabel tersebut ke json.encode. Hasilnya adalah string yang siap ditulis atau dikirim.

local json = require("dkjson")
local book = { title = "Lua", pages = 328 }
local text = json.encode(book)
print(text)

Jenis Data JSON

JSON mendukung sekumpulan kecil jenis data: string, angka, boolean, null, objek, dan larik.

Lua memetakannya menjadi string, angka, boolean, nil, dan tabel. Perhatikan bahwa JSON null tidak memiliki padanan Lua yang sempurna, sehingga dapat menimbulkan kejutan.

Mengapa Memilih JSON daripada Format Khusus

Anda dapat membuat format teks sendiri, tetapi JSON sudah dipahami di mana-mana. Penyunting dapat menyorotnya, validator dapat memeriksanya, dan bahasa lain dapat langsung menguraikannya.

Menggunakan JSON membuat data Anda portabel dan kode Anda lebih mudah di-debug.

Kasus Penggunaan Umum

Anda akan menggunakan JSON saat memanggil API REST, membaca berkas konfigurasi, menyimpan hasil dalam tembolok, atau meneruskan data antarproses.

Dalam setiap kasus, polanya sama: uraikan JSON yang masuk menjadi tabel, kerjakan data tersebut, lalu enkode kembali saat perlu meneruskannya.

local json = require("dkjson")
-- typical round trip
local data = json.decode(incoming)
data.seen = true
local out = json.encode(data)

Menangani Kesalahan Penguraian

Penguraian dapat gagal jika teks tersebut bukan JSON yang valid. dkjson mengembalikan nilai, posisi, dan pesan kesalahan, alih-alih membuat program berhenti.

Selalu periksa apakah nilai kembalian pertama adalah nil sebelum menggunakannya.

local json = require("dkjson")
local data, pos, err = json.decode("{bad")
if not data then
  print("Invalid JSON:", err)
end

Pemeriksaan Singkat

Uji pemahaman Anda tentang dasar-dasar JSON dalam Lua.

Ringkasan

JSON adalah format data universal yang dapat dipetakan dengan baik ke tabel Lua. Lua standar tidak memiliki dukungan JSON, jadi Anda perlu memuat pustaka seperti dkjson atau cjson.

Dua operasi intinya adalah json.decode (string menjadi tabel) dan json.encode (tabel menjadi string). Berikutnya, Anda akan mempelajari penguraian JSON menjadi tabel secara mendetail.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengapa JSON” gratis?

Ya — teks lengkap “Mengapa JSON” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengapa JSON”?

Dasar-Dasar pertukaran data. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Lua Academy?

Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Mengapa JSON” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengapa JSON
  2. Mendekode JSON Menjadi Tabel
  3. Menyandikan Tabel Menjadi JSON
  4. Menangani Data Bertingkat
← Kembali ke Lua Academy