Lua:
Làm việc với JSON

Làm thế nào:

Hãy phân tích một số JSON.

-- Đảm bảo bạn có mô đun 'dkjson' hoặc một thư viện JSON khác.
local dkjson = require 'dkjson'

local jsonString = '{"name":"John", "age":30, "city":"New York"}'

-- Phân tích chuỗi JSON thành bảng Lua.
local person, pos, err = dkjson.decode(jsonString, 1, nil)
if err then
    print("Lỗi:", err)
else
    print(person.name)  -- Đầu ra: John
end

-- Chuyển đổi bảng Lua thành chuỗi JSON.
local personTable = { name = "Jane", age = 25, city = "Los Angeles" }
local jsonOutput = dkjson.encode(personTable)
print(jsonOutput)  -- Đầu ra: {"age":25,"city":"Los Angeles","name":"Jane"}

Bây giờ hãy xử lý các mảng.

local jsonArrayString = '[{"name":"John"}, {"name":"Jane"}]'

-- Phân tích chuỗi JSON có mảng thành bảng Lua.
local peopleArray, _, err = dkjson.decode(jsonArrayString)
if err then
    print("Lỗi:", err)
else
    for i, person in ipairs(peopleArray) do
        print(person.name)  -- Đầu ra: John\nJane
    end
end

Đào sâu

JSON trở thành tiêu chuẩn de facto cho các API, vượt qua XML vì nó ít dài dòng hơn. Có các lựa chọn khác như YAML, thậm chí đọc dễ hơn nhưng không được sử dụng rộng rãi trong các API. Trong Lua, không có hỗ trợ JSON bản địa, vì vậy bạn cần một thư viện như ‘dkjson’ hoặc ‘cjson’. Các chi tiết cài đặt Lua bao gồm xử lý sự khác biệt về kiểu, như mảng và đối tượng, và chuyển đổi giữa nil của Lua và null của JSON.

Xem Thêm