Just wanted to say thanks for asking this question Guilherme. I know have 
access to a straight forward json parser for my native module.
when walking the jsonObject that results from the parsing do you loop over 
properties to find the keys of interest or is there a rapid/hashlike lookup 
available?

ie
Handle<Value> parseJson(Handle<Value> jsonString) {
    HandleScope scope;

    Handle<Context> context = Context::GetCurrent();
    Handle<Object> global = context->Global();

    Handle<Object> JSON = global->Get(String::New("JSON"))->ToObject();
    Handle<Function> JSON_parse = 
Handle<Function>::Cast(JSON->Get(String::New("parse")));

    // return JSON.parse.apply(JSON, jsonString);
    return scope.Close(JSON_parse->Call(JSON, 1, &jsonString));
}

then on the returned Handle<Value> obj

Local<Array> propertyNames = obj->GetPropertyNames();
for (int i=0;i < propertyNames->Length();++i) {
    // check if propertyName matches one I'm interested in
}

or recursively walk the json tree
Handle<Value> findMatchingValue(const string &key, Handle<Value> obj) {
    HandleScope scope;
    Handle<Value> rval;
    Local<Array> propertyNames = obj->GetPropertyNames();
    for (int i=0;i < propertyNames->Length();++i) {
        String::Utf8Value name = properNames->Get(i);
        if (name == *obj) { // check if propertyName matches one I'm 
interested in, not sure this will compile/function as desired
            rval = currentValue;
        }
        // if value type is an object or has children, gotta figure how to 
do this
            rval = findMatchingValue(key,value)
    }
}




On Sunday, June 10, 2012 5:30:10 PM UTC-4, Guilherme Silva wrote:
>
> Thanks everybody for your replies! I want to create a Script Manager that 
> encapsulates V8 and abstracts both js from json files ;).

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to