webmcp
changeset 131:dbe5881e4ecd
Added function json.setnull(...)
author | jbe |
---|---|
date | Sun Jul 27 21:45:34 2014 +0200 (2014-07-27) |
parents | 209f8ce39c5a |
children | 3cafdf1143f3 |
files | libraries/json/json.c |
line diff
1.1 --- a/libraries/json/json.c Sun Jul 27 21:25:26 2014 +0200 1.2 +++ b/libraries/json/json.c Sun Jul 27 21:45:34 2014 +0200 1.3 @@ -272,6 +272,24 @@ 1.4 return json_path(L, JSON_PATH_ISNULL); 1.5 } 1.6 1.7 +static int json_setnull(lua_State *L) { 1.8 + lua_settop(L, 2); 1.9 + lua_pushvalue(L, JSON_UPVAL_METATABLE); 1.10 + lua_setmetatable(L, 1); 1.11 + lua_pushvalue(L, 1); 1.12 + lua_rawget(L, JSON_UPVAL_SHADOWTBL); 1.13 + if (lua_isnil(L, -1)) { 1.14 + lua_newtable(L); 1.15 + lua_pushvalue(L, 1); 1.16 + lua_pushvalue(L, -2); 1.17 + lua_rawset(L, JSON_UPVAL_SHADOWTBL); 1.18 + } 1.19 + lua_pushvalue(L, 2); 1.20 + lua_pushvalue(L, JSON_UPVAL_NULLMARK); 1.21 + lua_rawset(L, -3); 1.22 + return 0; 1.23 +} 1.24 + 1.25 static int json_len(lua_State *L) { 1.26 lua_settop(L, 1); 1.27 lua_pushvalue(L, 1); 1.28 @@ -307,6 +325,7 @@ 1.29 {"get", json_get}, 1.30 {"type", json_type}, 1.31 {"isnull", json_isnull}, 1.32 + {"setnull", json_setnull}, 1.33 {NULL, NULL} 1.34 }; 1.35