Lua:
Werken met JSON

Hoe:

Laten we wat JSON parsen.

-- Zorg dat je de 'dkjson' module of een andere JSON-bibliotheek hebt.
local dkjson = require 'dkjson'

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

-- Parse JSON-string naar een Lua-tabel.
local person, pos, err = dkjson.decode(jsonString, 1, nil)
if err then
    print("Fout:", err)
else
    print(person.name)  -- Uitvoer: John
end

-- Converteer Lua-tabel naar JSON-string.
local personTable = { name = "Jane", age = 25, city = "Los Angeles" }
local jsonOutput = dkjson.encode(personTable)
print(jsonOutput)  -- Uitvoer: {"age":25,"city":"Los Angeles","name":"Jane"}

Nu laten we arrays afhandelen.

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

-- Parse JSON-string met een array naar een Lua-tabel.
local peopleArray, _, err = dkjson.decode(jsonArrayString)
if err then
    print("Fout:", err)
else
    for i, person in ipairs(peopleArray) do
        print(person.name)  -- Uitvoer: John\nJane
    end
end

Diepgaand

JSON werd de de facto standaard voor API’s, en groeide uit boven XML omdat het minder verhalend is. Er zijn alternatieven zoals YAML, dat nog leesbaarder is maar niet zo breed gebruikt wordt in API’s. In Lua is er geen native JSON-ondersteuning, dus je hebt een bibliotheek zoals ‘dkjson’ of ‘cjson’ nodig. Implementatiedetails in Lua omvatten het omgaan met typeverschillen, zoals arrays en objecten, en het converteren tussen Lua’s nil en JSON’s null.

Zie Ook