summaryrefslogtreecommitdiffhomepage
path: root/libs/luci-lib-jsonc
diff options
context:
space:
mode:
authorJan-Philipp Litza <janphilipp@litza.de>2015-08-30 15:45:49 +0200
committerJan-Philipp Litza <janphilipp@litza.de>2015-08-30 15:52:33 +0200
commite7645d557c1bd532e49c69f0ab781cf6342067d1 (patch)
tree06d874a2e8b01b6e91202b413779d864953fd280 /libs/luci-lib-jsonc
parente32a877aa48d0e9d87d999026a6c49707b42a7bf (diff)
luci-lib-jsonc: allow encoding empty lists
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>
Diffstat (limited to 'libs/luci-lib-jsonc')
-rw-r--r--libs/luci-lib-jsonc/src/jsonc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/luci-lib-jsonc/src/jsonc.c b/libs/luci-lib-jsonc/src/jsonc.c
index 827fde884..971fb122f 100644
--- a/libs/luci-lib-jsonc/src/jsonc.c
+++ b/libs/luci-lib-jsonc/src/jsonc.c
@@ -222,7 +222,7 @@ static int _lua_test_array(lua_State *L, int index)
out:
lua_pop(L, 2);
- return 0;
+ return -1;
}
/* check for holes */
@@ -254,7 +254,7 @@ static struct json_object * _lua_to_json(lua_State *L, int index)
case LUA_TTABLE:
max = _lua_test_array(L, index);
- if (max > 0)
+ if (max >= 0)
{
obj = json_object_new_array();