10

私は node.js バインディングを作成しており、v8::Object インスタンスから JSON 文字列を生成したいと考えています。C++でやりたい。node.js は既にあるのでJSON.stringify、それを利用したいと思います。しかし、C++ コードからアクセスする方法がわかりません。

4

2 に答える 2

5

グローバル オブジェクトへの参照を取得してから、stringify メソッドを取得する必要があります。

Local<Object> obj = ... // Thing to stringify

// Get the global object.
// Same as using 'global' in Node
Local<Object> global = Context::GetCurrent()->Global();

// Get JSON
// Same as using 'global.JSON'
Local<Object> JSON = Local<Object>::Cast(
    global->Get(String::New("JSON")));

// Get stringify
// Same as using 'global.JSON.stringify'
Local<Function> stringify = Local<Function>::Cast(
    JSON->Get(String::New("stringify")));

// Stringify the object
// Same as using 'global.JSON.stringify.apply(global.JSON, [ obj ])
Local<Value> args[] = { obj };
Local<String> result = Local<String>::Cast(stringify->Call(JSON, 1, args));
于 2013-04-13T18:08:57.513 に答える