On Thu, Jun 21, 2012 at 12:49 AM, Mark Essel <[email protected]> wrote:
> 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?
You're using it already: obj_handle->Get(propertyName)
>
> 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
--
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users