V8 JSON.stringify和包装的本机对象

时间:2018-03-18 06:12:42

标签: javascript c++ v8

我正在开发一个使用libv8(版本3.14)的C ++绑定进行脚本编写的应用程序,并且需要将脚本生成的数据序列化到磁盘。目前,我通过调用V8的内置JSON.stringify()并提取生成的JS字符串来完成此操作。同时,我将几个C ++类(通过ObjectTemplate和内部字段)暴露给JS,将它们存储在要序列化的JS对象中通常是有意义的,例如。

n = getWrappedNativeObject();
to_store = { "a": 1, "b": n };

不幸的是,stringify完全忽略了这些数据,因此它遇到的任何本地类都被翻译为{},即JSON.stringify(to_store) == "{\"a\":1, \"b\":{} }"

有没有办法提供JSON.stringify如何序列化对象的自定义覆盖?除此之外,序列化可能包含包装本机对象的javascript对象的最佳方法是什么? (您可以假设本机对象具有自己的序列化方法,并且在JS被(序列化)时,我可以访问指向本机对象的指针和在磁盘上标识它们的ID之间的适当映射。)

0 个答案:

没有答案