m-lua-scripting: add Json.Raw constructor
This commit is contained in:
@@ -162,6 +162,16 @@ spa_json_parse (lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Raw */
|
||||||
|
|
||||||
|
static int
|
||||||
|
spa_json_raw_new (lua_State *L)
|
||||||
|
{
|
||||||
|
const gchar *value = lua_tostring (L, 1);
|
||||||
|
wplua_pushboxed (L, WP_TYPE_SPA_JSON, wp_spa_json_new_from_string (value));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* None */
|
/* None */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -314,6 +324,7 @@ static const luaL_Reg spa_json_methods[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const luaL_Reg spa_json_constructors[] = {
|
static const luaL_Reg spa_json_constructors[] = {
|
||||||
|
{ "Raw", spa_json_raw_new },
|
||||||
{ "Null", spa_json_null_new },
|
{ "Null", spa_json_null_new },
|
||||||
{ "Boolean", spa_json_boolean_new },
|
{ "Boolean", spa_json_boolean_new },
|
||||||
{ "Int", spa_json_int_new },
|
{ "Int", spa_json_int_new },
|
||||||
|
@@ -121,3 +121,20 @@ assert (val.key7.key_nested2 == 8)
|
|||||||
assert (not val.key7.key_nested3[1])
|
assert (not val.key7.key_nested3[1])
|
||||||
assert (val.key7.key_nested3[2])
|
assert (val.key7.key_nested3[2])
|
||||||
assert (not val.key7.key_nested3[3])
|
assert (not val.key7.key_nested3[3])
|
||||||
|
|
||||||
|
-- Raw
|
||||||
|
json = Json.Raw ("[\"foo\", \"bar\"]")
|
||||||
|
assert (json:is_array())
|
||||||
|
assert (json:get_data() == "[\"foo\", \"bar\"]")
|
||||||
|
val = json:parse ()
|
||||||
|
assert (val[1] == "foo")
|
||||||
|
assert (val[2] == "bar")
|
||||||
|
|
||||||
|
json = Json.Raw ("{\"name\": \"wireplumber\", \"version\": [0, 4, 7]}")
|
||||||
|
assert (json:is_object())
|
||||||
|
assert (json:get_data() == "{\"name\": \"wireplumber\", \"version\": [0, 4, 7]}")
|
||||||
|
val = json:parse ()
|
||||||
|
assert (val.name == "wireplumber")
|
||||||
|
assert (val.version[1] == 0)
|
||||||
|
assert (val.version[2] == 4)
|
||||||
|
assert (val.version[3] == 7)
|
||||||
|
Reference in New Issue
Block a user