📜  lua json - Lua (1)

📅  最后修改于: 2023-12-03 15:32:45.900000             🧑  作者: Mango

Lua JSON - 轻量级 JSON 解析器

Lua JSON 是一个轻量级的 JSON 解析器,它可以在 Lua 程序中解析 JSON 字符串或 JSON 文件,并转换成 Lua 对象。

优点
  • 快速:解析速度非常快,比其他 Lua 实现的 JSON 解析器要快得多。
  • 轻量级:代码量小,非常适合嵌入式设备、移动端和 Web 开发中使用。
  • 简单易用:简单易学,无需复杂的配置和参数即可完成 JSON 解析。
安装和使用

你可以通过 LuaRocks 安装 Lua JSON:

luarocks install lua-cjson

使用 Lua JSON 非常简单,只需要引入模块,然后调用 decode()decode_file() 函数即可:

local json = require "cjson"

-- JSON 字符串解析
local data = '{"name": "Alice", "age": 25}'
local obj = json.decode(data)

-- JSON 文件解析
local obj = json.decode_file("data.json")
示例

以下是解析 JSON 字符串的示例:

local json = require "cjson"

local data = '{"name": "Alice", "age": 25}'
local obj = json.decode(data)

-- 输出结果
print(obj.name) -- Alice
print(obj.age) -- 25

以下是解析 JSON 文件的示例:

local json = require "cjson"

local file = io.open("data.json", "r")
local data = file:read("*all")
file:close()

local obj = json.decode(data)

-- 输出结果
print(obj.name) -- Alice
print(obj.age) -- 25
支持的数据类型

Lua JSON 支持以下的 JSON 数据类型:

  • null
  • boolean
  • number
  • string
  • array
  • object
进阶用法

Lua JSON 还支持一些高级用法,例如自定义解析选项、自定义 Lua 对象与 JSON 字符串之间的转换、自定义错误处理等。

例如,如果你想将 Lua 表对象转换为 JSON 字符串,可以使用 encode() 函数:

local json = require "cjson"

local obj = {
    name = "Alice",
    age = 25,
}

local str = json.encode(obj)

-- 输出结果
print(str) -- {"name":"Alice","age":25}

详细的进阶用法请参考官方文档。

参考资料