Thanks for calling it out Matthias. Assume it works for nested properties:

> obj_handle->Get(propertyName)->Get(propertyName)

I was hoping for a nested map of maps 
obj[pname1][pname2][pname3]


On Jun 21, 2012, at 5:47 AM, Matthias Ernst <[email protected]> wrote:

> 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

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

Reply via email to