Skip to main content

JSON System

The JSON system provides functions for parsing JSON strings and files into Lua tables.

Overview

JSON (JavaScript Object Notation) is a widely-used data format. The JSON system allows you to parse JSON content and work with it as Lua tables, making it easy to work with APIs and configuration files.

Available Functions

Common Use Cases

Parsing JSON String

local jsonContent = '{"name": "John", "age": 30, "city": "New York"}'
local data = parseJsonString(jsonContent)
Logger.info("Name: " .. data.name)
Logger.info("Age: " .. data.age)

Reading JSON File

local config = parseJsonFile("config.json")
if config then
SessionState.set("apiKey", config.apiKey)
SessionState.set("endpoint", config.endpoint)
end

Working with Arrays

local jsonContent = '{"users": ["Alice", "Bob", "Charlie"]}'
local data = parseJsonString(jsonContent)
for i, user in ipairs(data.users) do
Logger.info("User " .. i .. ": " .. user)
end

Nested Objects

local jsonContent = [[
{
"user": {
"name": "John",
"address": {
"street": "123 Main St",
"city": "New York"
}
}
}
]]
local data = parseJsonString(jsonContent)
Logger.info("Street: " .. data.user.address.street)

Error Handling

local data, error = parseJsonString(invalidJson)
if not data then
Logger.error("JSON parse error: " .. error)
end

Return Values

Both functions return:

  • On success: A Lua table representing the JSON data
  • On error: nil and an error message string