Age | Commit message (Collapse) | Author |
|
Properly deal with integral numeric values exceeding the int32_t range
by replacing the cast logic with more fine grained checks:
- Lua numbers which are integers in the first place are directly converted
to JSON integers
- Finite double Lua numbers which are integral are converted to JSON
integer values
- All other numeric values are converted to JSON doubles
This should bring the handling of large integral value in line with the
documented behavior of turning non-fractional Lua numbers into JSON
integers.
Fixes: #6647
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Fixes: #3293
Signed-off-by: Justin Klaassen <jck112@users.noreply.github.com>
|
|
Fixes: #3293
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
Also increase the stack size as needed to prevent crashes when serializing
deeply nested tables.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|
To use the luci-lib-jsonc parser as sink for an ltn12 pump (for example
from stdin), the following code will now do:
require 'luci.ltn12'
require 'luci.jsonc'
local parser = luci.jsonc.new()
luci.ltn12.pump.all(luci.ltn12.source.file(io.input()), parser:sink())
print(parser:get())
Signed-off-by: Jan-Philipp Litza <janphilipp@litza.de>
|
|
|
|
To be consistent with the behavior of luci-lib-json, an empty Lua table
should be encoded to an empty JSON list, not an empty JSON object.
To still allow encoding empty JSON objects, the usage of anything other
than a number or a string as a key (for example an empty table or a
function) can be used to force encoding as an object:
json.stringify({}) -- "[]"
json.stringify({[{}] = true}) -- "{}"
Signed-off-by: Jan-Philipp Litza <janphilipp@litza.de>
|
|
Previously, the following caused a segmentation fault:
json.stringify({[{}] = true})
This was caused by lua_tostring() returning NULL for anything but
strings and numbers, letting json_object_object_add crash.
This patch makes jsonc ignore all keys which have no string
representation altogether.
Signed-off-by: Jan-Philipp Litza <janphilipp@litza.de>
|
|
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
|
|
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
|