Lua 中如何解析 json?

是否有一个轻量级的、最好是纯 Lua 的库,用于解析 json 内容?基本上,我想用一个 Lua 模块来增强我的 ngnix,并从 Redis 得到一个 json 对象需要验证一些信息。

这个对象看起来像下面这样:

{
  "data": {
    "user": {
      "username": "用户名",
      "type": "类型"
    }
  },
  "passport": {
    "user": "uuid"
  },
}

在我的 Lua 代码中,我需要验证 data.user.username 是否存在。然后我可以让 ngnix 继续进行其重定向。请问有人能向我展示如何实现吗?

点赞
用户107090
用户107090
以那种形式呈现的 JSON 数据非常接近于 Lua 表格。如果你信任该 JSON 数据,你可以将其转换成 Lua 代码并运行。

J=[[
{
  "data": {
    "user": {
      "username": "username",
      "type": "TYPE"
    }
  },
  "passport": {
    "user": "uuid"
  },
}
]]
L="return "..J:gsub('("[^"]-"):','[%1]=')
T=loadstring(L)()
print(T.data.user.username)

如果你对该 JSON 数据有任何疑虑,你可能想在沙箱中运行 L 字符串。

2017-02-09 15:12:41