当前位置: 首页 > 工具软件 > Safe Lua > 使用案例 >

Lua-cjson的safe模块

闻人飞翼
2023-12-01

在使用这个库函数的时候,最好使用2.1.0版(或者更新的)。
因为在2.1.0版新增了safe模块,在进行调用时,如果出现解析异常,不会抛出异常,而是返回Nil,这样可以避免程序意外退出。
如果直接采用cjson,如下:

local inputStr = '{"name":"void","br}'
...
local iJson = cjson.decode(inputStr)
...

程序将在cjson.decode()这一行意外退出,因为这里inputStr不是JSON格式数据,出现解析异常。
如果采用cjson.safe模块,如下:

local inputStr = '{"name":"void","br}'
...
local iJson = cjsonSafe.decode(inputStr)
...

这里虽然也出现了解析异常,但是由于cjson.safe返回的是nil,可以通过判断iJson是否为nil知道解析是否出现了问题。

1.有一些关于Lua使用的文档
2.Lua-cjson库使用注意

 类似资料: