lua cjson 编码 nil 字段

Chu*_*ang 2 lua cjson

我有一个 lua 表,例如:

local _table = {}

_table["name"] = "some user name"    
_table["phone"] = nil

ngx.say(cjson.encode(_table))
Run Code Online (Sandbox Code Playgroud)

ngx.say 输出如下:

{"name":"some user name"}
Run Code Online (Sandbox Code Playgroud)

如您所见,_table 中的电话字段已被忽略!如何在 cjson 编码处理期间设置 encoding-options 以包含任何 nil 字段。如:

{"name":"some user name", "phone": null}
Run Code Online (Sandbox Code Playgroud)

tar*_*leb 5

分配nil给一个表字段意味着这个表字段将被视为未设置,即从 Lua 的角度来看它停止存在。CJSON 带有一个专门的值来表示null,使用它来代替:

_table["phone"] = cjson.null
Run Code Online (Sandbox Code Playgroud)