luci-lib-json: support serializing userdata

Fixes the following error when attempting to serialize userdata objects:

    .../json.lua:81: attempt to call local 'parser' (a nil value)

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2018-05-18 16:59:16 +02:00
parent 364c271a84
commit 09de5a74e1

View file

@ -181,13 +181,18 @@ function Encoder.parse_iter(self, obj)
end
end
function Encoder.parse_udata(self, obj)
return self:parse_string(tostring(obj))
end
Encoder.parsers = {
['nil'] = Encoder.parse_nil,
['table'] = Encoder.parse_iter,
['number'] = Encoder.parse_number,
['string'] = Encoder.parse_string,
['boolean'] = Encoder.parse_bool,
['function'] = Encoder.parse_iter
['function'] = Encoder.parse_iter,
['userdata'] = Encoder.parse_udata,
}