2

我有一个 lua 表,例如:

local _table = {}

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

ngx.say(cjson.encode(_table))

ngx.say 输出如下:

{"name":"some user name"}

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

{"name":"some user name", "phone": null}
4

1 回答 1

5

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

_table["phone"] = cjson.null
于 2017-11-29T07:45:30.253 回答