diff options
author | Jan-Philipp Litza <janphilipp@litza.de> | 2015-08-30 15:45:49 +0200 |
---|---|---|
committer | Jan-Philipp Litza <janphilipp@litza.de> | 2015-08-30 15:52:33 +0200 |
commit | e7645d557c1bd532e49c69f0ab781cf6342067d1 (patch) | |
tree | 06d874a2e8b01b6e91202b413779d864953fd280 /libs/luci-lib-jsonc/src/jsonc.c | |
parent | e32a877aa48d0e9d87d999026a6c49707b42a7bf (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/src/jsonc.c')
-rw-r--r-- | libs/luci-lib-jsonc/src/jsonc.c | 4 |
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 827fde8843..971fb122f7 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(); |