JSON

    Available since v0.4.0

    Encode and Decode JSON

    local json = require "json"
    

    json.encode(value)

    Encodes a Lua table or value into a JSON-formatted string.

    local str = json.encode {foo = "bar"}
    print(str)
    -- '{"foo": "bar"}'
    

    Supports encoding arrays:

    local str = json.encode {"foo", "bar"}
    print(str)
    -- '["foo", "bar"]'
    

    Encodes an empty array using json.array():

    local str = json.encode(json.array())
    print(str)
    -- '[]'
    

    Encodes null values using json.null:

    local str = json.encode {foo = json.null}
    print(str)
    -- '{"foo": null}'
    

    json.decode(str)

    Decodes a JSON-formatted string into a Lua table or value.

    local tbl = json.decode '{"foo": "bar"}'
    print(tbl.foo)
    -- 'bar'
    

    Calling json Directly

    Calling the package directly is an alias for json.encode:

    local str = json {
        foo = "bar",
        nest = {baz = "bil"},
        null = json.null,
        nums = {1, 2, 3.22},
        bools = {true, false},
        empty = json.array()
    }
    print(str)
    -- {
    --   "foo": "bar",
    --   "nest": {
    --     "baz": "bil"
    --   },
    --   "null": null,
    --   "nums": [
    --     1,
    --     2,
    --     3.22
    --   ],
    --   "bools": [
    --     true,
    --     false
    --   ],
    --   "empty": []
    -- }