0Pricing
Lua Academy · Ders

JSON'u Tablolara Kod Çözme

JSON dizelerini ayrıştırın.

JSON'u Tablolara Kod Çözme, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.

Kod Çözmenin Temelleri

Kod çözme, bir JSON dizesini üzerinde çalışabileceğiniz bir Lua değerine dönüştürür. Başlangıç noktası json.decode(text) işlevidir.

En üst düzey JSON bir nesneyse dize anahtarlarına sahip bir Lua tablosu, bir diziyse sayısal indisleri olan bir tablo elde edersiniz.

local json = require("dkjson")
local data = json.decode('{"id": 7}')
print(data.id)

Nesne Alanlarını Okuma

Kod çözme işleminden geçirilen bir JSON nesnesi, herhangi bir Lua tablosu gibi davranır. Değerlere nokta veya köşeli parantez gösterimiyle erişin.

Geçerli Lua tanımlayıcıları olmayan anahtarlar (örneğin boşluk içerenler) köşeli parantez sözdizimini gerektirir.

local json = require("dkjson")
local u = json.decode('{"name": "Mia", "full name": "Mia Lee"}')
print(u.name)
print(u["full name"])

Dizilerin Kodunu Çözme

Bir JSON dizisi, 1'den başlayan indislerle numaralandırılmış bir Lua dizi tablosuna dönüşür. Üzerinde ipairs ile veya sayısal bir döngü kullanarak yineleme yapabilirsiniz.

Unutmayın: Lua dizileri 0'dan değil, 1'den başlayan indisler kullanır.

local json = require("dkjson")
local nums = json.decode('[10, 20, 30]')
for i, v in ipairs(nums) do
  print(i, v)
end

Sayılar ve Mantıksal Değerler

JSON sayıları Lua sayılarına, JSON true/false değerleri ise Lua mantıksal değerlerine dönüştürülür.

Kod çözme işleminden sonra bunları doğrudan aritmetik işlemlerde veya koşullu ifadelerde kullanabilirsiniz.

local json = require("dkjson")
local d = json.decode('{"qty": 3, "paid": false}')
if not d.paid then
  print("unpaid, qty =", d.qty)
end

Boş Değeri Ele Alma

JSON null değeri, Lua'daki nil bir anahtarı tablodan kaldırdığı için dikkat gerektirir. Kitaplıklar bu durumu farklı biçimlerde ele alır.

dkjson, null değerini json.null özel işaret değerine dönüştürür; böylece anahtar varlığını korur. Boş değerleri algılamak için bununla karşılaştırın.

local json = require("dkjson")
local d = json.decode('{"mid": null}')
if d.mid == json.null then
  print("mid is null")
end

Dosyadan Kod Çözme

JSON çoğu zaman bir dosyada bulunur. Dosyanın tamamını bir dizeye okuyun ve ardından kodunu çözün.

Bu yöntem, yapılandırma veya kaydedilmiş oyun durumunu yüklemek için yaygın olarak kullanılır.

local json = require("dkjson")
local f = io.open("config.json", "r")
local text = f:read("*a")
f:close()
local cfg = json.decode(text)
print(cfg.theme)

Üç Döndürülen Değer

dkjson'in decode işlevi en fazla üç değer döndürür: kodu çözülmüş sonuç, ayrıştırmanın durduğu konum ve bir hata mesajı.

Başarılı olduğunda sonuç nil değildir; başarısız olduğunda nil olur ve üçüncü değer bunun nedenini açıklar.

local json = require("dkjson")
local obj, pos, err = json.decode('{"a":1}')
print(obj.a, pos, err)

Girdiyi Doğrulama

Dış kaynaklardan gelen JSON'a asla güvenmeyin. Hatalı bir veri yükünün programınızı çökertmemesi için kullanmadan önce sonucu her zaman kontrol edin.

local json = require("dkjson")
local function safeDecode(s)
  local v, _, err = json.decode(s)
  if not v then return nil, err end
  return v
end

cjson Farkları

lua-cjson benzer şekilde çalışır ancak geçersiz girdiyi döndürmek yerine hata oluşturur. Güvenlik için onu pcall içine alın.

cjson daha hızlıdır; bu, yüksek hacimli ayrıştırma işlemlerinde önemlidir.

local cjson = require("cjson")
local ok, data = pcall(cjson.decode, '{"x":1}')
if ok then print(data.x) else print("error") end

Eksik Anahtarlar nil'dir

JSON'da bulunmayan bir anahtarı okursanız Lua basitçe nil döndürür. Bu normaldir ve hata oluşturmaz.

İsteğe bağlı alanlar için varsayılan değerler sağlamak üzere or ile bir yedek değer kullanın.

local json = require("dkjson")
local d = json.decode('{"name": "Sam"}')
local age = d.age or 0
print(d.name, age)

Boş Tablolar Belirsizdir

Hem boş bir JSON nesnesi olan {} hem de boş bir dizi olan [], boş bir Lua tablosuna dönüştürülür. Kod çözme işleminden sonra hangisi olduğunu anlayamazsınız.

Bu durum çoğunlukla yeniden kodlama sırasında önem kazanır; gidiş-dönüş işlemleri için bu belirsizliği aklınızda bulundurun.

Hızlı Kontrol

JSON kodunu çözme hakkında öğrendiklerinizi kontrol edin.

Özet

Kod çözme, JSON metnini Lua tablolarına dönüştürür; nesneler dize anahtarlı tablolara, diziler ise 1 tabanlı dizilere dönüşür.

Sonucu her zaman doğrulayın, boş değeri kitaplığın özel işaret değeriyle ele alın ve eksik anahtarların basitçe nil olduğunu unutmayın. Sırada Lua tablolarını yeniden JSON'a dönüştürmeyi öğreneceksiniz.

Sıkça Sorulan Sorular

“JSON'u Tablolara Kod Çözme” dersi ücretsiz mi?

Evet — “JSON'u Tablolara Kod Çözme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.

“JSON'u Tablolara Kod Çözme” dersinde ne öğreneceğim?

JSON dizelerini ayrıştırın. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Lua Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“JSON'u Tablolara Kod Çözme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. JSON Neden Kullanılır
  2. JSON'u Tablolara Kod Çözme
  3. Tabloları JSON'a Kodlama
  4. İç İçe Verileri Yönetme
← Lua Academy Sayfasına Dön