如何创建插入的对象使用 duktape?
How create inserted object use duktape?
有这个代码:
auto obj_idx = duk_push_object( ctx );
duk_push_string( ctx, "key" );
duk_push_string( ctx, "value" );
duk_put_prop( ctx, obj_idx );
duk_push_string( ctx, "key2" );
duk_push_string( ctx, "value" );
duk_put_prop( ctx, obj_idx );
duk_put_global_string( ctx, "obj" );
如何在obj中插入新对象?无论我多么努力地尝试插入嵌套对象,它都不起作用。要么崩溃,要么没有插入。
{
"key": "value",
"key2": "value",
"newObj": {
"newKey": "value"
}
}
我将以下代码放入 Duktape hello
示例中,它产生了正确的结果:
auto obj_idx = duk_push_object( ctx );
duk_push_string( ctx, "key" );
duk_push_string( ctx, "value" );
duk_put_prop( ctx, obj_idx );
duk_push_string( ctx, "key2" );
duk_push_string( ctx, "value" );
duk_put_prop( ctx, obj_idx );
auto nested_idx = duk_push_object(ctx);
duk_push_int(ctx, 2019);
duk_put_prop_string(ctx, nested_idx, "year");
duk_put_prop_string(ctx, obj_idx, "nested");
duk_put_global_string( ctx, "obj" );
duk_eval_string(ctx, "print(JSON.stringify(obj))");
要记住的关键是 duk_put_prop
和 duk_put_prop_string
从堆栈中取出一个值,而 duk_push_*
将一个值压入堆栈。
有这个代码:
auto obj_idx = duk_push_object( ctx );
duk_push_string( ctx, "key" );
duk_push_string( ctx, "value" );
duk_put_prop( ctx, obj_idx );
duk_push_string( ctx, "key2" );
duk_push_string( ctx, "value" );
duk_put_prop( ctx, obj_idx );
duk_put_global_string( ctx, "obj" );
如何在obj中插入新对象?无论我多么努力地尝试插入嵌套对象,它都不起作用。要么崩溃,要么没有插入。
{
"key": "value",
"key2": "value",
"newObj": {
"newKey": "value"
}
}
我将以下代码放入 Duktape hello
示例中,它产生了正确的结果:
auto obj_idx = duk_push_object( ctx );
duk_push_string( ctx, "key" );
duk_push_string( ctx, "value" );
duk_put_prop( ctx, obj_idx );
duk_push_string( ctx, "key2" );
duk_push_string( ctx, "value" );
duk_put_prop( ctx, obj_idx );
auto nested_idx = duk_push_object(ctx);
duk_push_int(ctx, 2019);
duk_put_prop_string(ctx, nested_idx, "year");
duk_put_prop_string(ctx, obj_idx, "nested");
duk_put_global_string( ctx, "obj" );
duk_eval_string(ctx, "print(JSON.stringify(obj))");
要记住的关键是 duk_put_prop
和 duk_put_prop_string
从堆栈中取出一个值,而 duk_push_*
将一个值压入堆栈。