lua cjson кодирует нулевое поле

У меня есть таблица lua, например:

local _table = {}

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

ngx.say(cjson.encode(_table))

Вывод ngx.say, как показано ниже:

{"name":"some user name"}

Как видите, поле телефона в _table было проигнорировано! Как настроить параметры кодирования для включения любого нулевого поля во время обработки кодирования cjson. Такие как:

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

person Chunhui Zhang    schedule 29.11.2017    source источник


Ответы (1)


Присвоение nil полю таблицы означает, что это поле таблицы будет считаться неустановленным, то есть с точки зрения Lua оно перестанет существовать. CJSON поставляется со специальным значением для представления null, используйте его вместо этого:

_table["phone"] = cjson.null
person tarleb    schedule 29.11.2017