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  

Impressum / About Us