1. 程式人生 > >Lua-cjson的safe模組

Lua-cjson的safe模組

在使用這個庫函式的時候,最好使用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知道解析是否出現了問題。