如何在lua中解析json?

时间:2017-02-09 14:31:50

标签: json nginx lua

是否有任何轻量级,最好是纯lua的库,用于解析json内容?基本上我想用一个lua模块扩充我的ngnix,它需要从json获得Redis对象中的一些信息。

该对象如下所示:

{
  "data": {
    "user": {
      "username": "username",
      "type": "TYPE"
    }
  },
  "passport": {
    "user": "uuid"
  },
}

在我的lua代码中,我需要验证data.user.username是否存在。然后我可以让nginx继续重定向。任何人都可以告诉我一个如何实现这个目标的例子吗?

1 个答案:

答案 0 :(得分:2)

该表单中的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)

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