[jQuery] Re: need some basic json object help

2008-11-16 Thread Geuis

Thanks for the tips. That helps a bunch.

On Nov 16, 6:27 pm, RobG <[EMAIL PROTECTED]> wrote:
> On Nov 17, 8:57 am, Geuis <[EMAIL PROTECTED]> wrote:
>
>
>
> > I've gotten to be fairly intermediate at consuming json objects, such
> > as those I'm retrieving from web api's. However, I'm trying to push
> > the boundaries of what I understand about JSON objects once the client
> > has loaded them. I have been searching around google for the last
> > couple of hours for what I think I want to know but I'm getting
> > nowhere. Hoping some other js wizzes can help me out. This isn't
> > directly a jQuery question, but I need to understand more about this
> > to help me write better jQuery code.
>
> > This is my sample data for the following questions:
> >         var obj = {     "nodes" :[
> >                                 {
> >                                         type : 'a',
> >                                         name : 'stuff'
> >                                 },
> >                                 {type : 'b'},
> >                                 {type : 'c'}
> >                           ]
> >         };
>
> > 1) How can I add new nodes to an existing object? I can reference
> > obj.nodes[x].type for example. Now I want to add a new type to
> > "nodes". I tried: obj += {type:'d'}; but got nothing usable. Except
> > that obj.nodes.length went from 3 to 62.
>
>   obj.nodes.push({type:'d'});
>
> > 2) Is there a list of core Javascript methods that let you work with
> > JSON objects? Something like .push, .pop, etc?
>
> Methods belong to objects, the methods you mention belong to
> Array.prototype and therefore instances of Array.
>
> > 3) How do you search a JSON object? Suppose I want to find a group of
> > nodes that all have the name "stuff", regardless of what their "type"
> > property is?
> > I know I can loop through an object using for(i in obj){}.
>
> Since nodes is an array, you can iterate over it using a for loop (or
> an each method) and check:
>
>   var t = nodes[i];
>   var stuffGroup = [];
>   if ( t.name && t.name == 'stuff' ) {
>     stuffGroup.push(t);
>   }
>
> You might want to make the relevant methods properties of some object
> that you construct and pass it the JSON data to work with.
>
> --
> Rob


[jQuery] Re: need some basic json object help

2008-11-16 Thread RobG



On Nov 17, 8:57 am, Geuis <[EMAIL PROTECTED]> wrote:
> I've gotten to be fairly intermediate at consuming json objects, such
> as those I'm retrieving from web api's. However, I'm trying to push
> the boundaries of what I understand about JSON objects once the client
> has loaded them. I have been searching around google for the last
> couple of hours for what I think I want to know but I'm getting
> nowhere. Hoping some other js wizzes can help me out. This isn't
> directly a jQuery question, but I need to understand more about this
> to help me write better jQuery code.
>
> This is my sample data for the following questions:
>         var obj = {     "nodes" :[
>                                 {
>                                         type : 'a',
>                                         name : 'stuff'
>                                 },
>                                 {type : 'b'},
>                                 {type : 'c'}
>                           ]
>         };
>
> 1) How can I add new nodes to an existing object? I can reference
> obj.nodes[x].type for example. Now I want to add a new type to
> "nodes". I tried: obj += {type:'d'}; but got nothing usable. Except
> that obj.nodes.length went from 3 to 62.


  obj.nodes.push({type:'d'});


> 2) Is there a list of core Javascript methods that let you work with
> JSON objects? Something like .push, .pop, etc?

Methods belong to objects, the methods you mention belong to
Array.prototype and therefore instances of Array.


> 3) How do you search a JSON object? Suppose I want to find a group of
> nodes that all have the name "stuff", regardless of what their "type"
> property is?
> I know I can loop through an object using for(i in obj){}.

Since nodes is an array, you can iterate over it using a for loop (or
an each method) and check:

  var t = nodes[i];
  var stuffGroup = [];
  if ( t.name && t.name == 'stuff' ) {
stuffGroup.push(t);
  }

You might want to make the relevant methods properties of some object
that you construct and pass it the JSON data to work with.


--
Rob