lua中如何解析json?

moo*_*ara 3 lua json nginx

有没有轻量级的,最好是纯lua的,供lua解析json内容的库?基本上我想用一个 lua 模块来增强我的 ngnix,该模块需要验证json我从中获取的对象的一些信息Redis

该对象如下所示:

{
  "data": {
    "user": {
      "username": "username",
      "type": "TYPE"
    }
  },
  "passport": {
    "user": "uuid"
  },
}
Run Code Online (Sandbox Code Playgroud)

在我的lua代码中,我需要验证是否data.user.username存在。然后我可以让 nginx 继续进行重定向。有人可以给我举一个例子来说明如何实现这一目标吗?

lhf*_*lhf 5

该形式的 JSON 数据非常接近 Lua 表。因此,如果您信任 JSON 数据,您可以将 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)
Run Code Online (Sandbox Code Playgroud)

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