From e7645d557c1bd532e49c69f0ab781cf6342067d1 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Litza Date: Sun, 30 Aug 2015 15:45:49 +0200 Subject: [PATCH] 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 --- libs/luci-lib-jsonc/src/jsonc.c | 4 ++-- 1 file 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(); -- 2.11.0