diff options
author | MikalaiR <nikolay.romanovich@narod.ru> | 2016-02-02 17:19:46 +0000 |
---|---|---|
committer | MikalaiR <nikolay.romanovich@narod.ru> | 2016-02-02 17:19:46 +0000 |
commit | 516601cb8e909d4c32ef50b10d34e4dd0b467b46 (patch) | |
tree | f1c6ff0f369a45a30324f0a837d99dc2dff973de /plugins/MirLua/Modules/JSON/src/json.cpp | |
parent | e1ac6db5805c38b4db6ebb79d99f18ed25d1467a (diff) |
MirLua: libjson-based json parser
git-svn-id: http://svn.miranda-ng.org/main/trunk@16215 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/MirLua/Modules/JSON/src/json.cpp')
-rw-r--r-- | plugins/MirLua/Modules/JSON/src/json.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/MirLua/Modules/JSON/src/json.cpp b/plugins/MirLua/Modules/JSON/src/json.cpp new file mode 100644 index 0000000000..edfa04fb83 --- /dev/null +++ b/plugins/MirLua/Modules/JSON/src/json.cpp @@ -0,0 +1,28 @@ +#include "stdafx.h"
+
+static int lua_decode(lua_State *L)
+{
+ const char *string = luaL_checkstring(L, 1);
+ MT *udata = (MT*)lua_newuserdata(L, sizeof(MT));
+ udata->node = json_parse(string);
+ udata->bDelete = true;
+ luaL_setmetatable(L, MT_JSON);
+ return 1;
+}
+
+static const luaL_Reg methods[] =
+{
+ { "decode", lua_decode },
+ { NULL, NULL }
+};
+
+LUA_LIBRARY_EXPORT(json)
+{
+ luaL_newlib(L, methods);
+
+ luaL_newmetatable(L, MT_JSON);
+ luaL_setfuncs(L, jsonApi, 0);
+ lua_pop(L, 1);
+
+ return 1;
+}
\ No newline at end of file |