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