luci-base: use serialize_json() in luci.http

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
This commit is contained in:
Jo-Philipp Wich 2015-01-18 19:01:04 +01:00
parent 61a9a58efc
commit 390c4bd5a7

View file

@ -285,40 +285,5 @@ urlencode = protocol.urlencode
--- Send the given data as JSON encoded string.
-- @param data Data to send
function write_json(x)
if x == nil then
write("null")
elseif type(x) == "table" then
local k, v
if type(next(x)) == "number" then
write("[ ")
for k, v in ipairs(x) do
write_json(v)
if next(x, k) then
write(", ")
end
end
write(" ]")
else
write("{ ")
for k, v in pairs(x) do
write("%q: " % k)
write_json(v)
if next(x, k) then
write(", ")
end
end
write(" }")
end
elseif type(x) == "number" or type(x) == "boolean" then
if (x ~= x) then
-- NaN is the only value that doesn't equal to itself.
write("Number.NaN")
else
write(tostring(x))
end
else
write('"%s"' % tostring(x):gsub('["%z\1-\31]', function(c)
return '\\u%04x' % c:byte(1)
end))
end
util.serialize_json(x, write)
end