It's not really an associative array.  It is the property of an
object, there are two notations for getting at an objects properties:

foo.bar

and

foo['bar']

though you could even:

eval('foo.' + fooProp);

foo.bar is the preferred method, but if the property name has a space
in it or needs to be evaluated the second method is used.  It looks
like an associative array but it will not have any of the array
methods, nor a .length.  This gets really tricky when foo is an array:

var foo = [];
foo['bar'] = 'value';

has the array methods, but has a length of 0.  but if you

foo[1234] = 'value';

then you have an array of length 1235 and the first 1234 value are
undefined.

Josh Powell


On Feb 13, 4:36 pm, Nic Luciano <adaptive...@gmail.com> wrote:
> Oh wow, I didn't realize JSON would act like an associative array in that
> way...
>
> Thanks guys!
>
> On Fri, Feb 13, 2009 at 7:10 PM, Josh Nathanson 
> <joshnathan...@gmail.com>wrote:
>
>
>
> > foo[fooProp] // returns "barVal"
>
> > Is that what you mean?
>
> > -- Josh
>
> > -----Original Message-----
> > From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] On
> > Behalf Of Nic
> > Sent: Friday, February 13, 2009 4:06 PM
> > To: jQuery (English)
> > Subject: [jQuery] Accessing a JSON property from an unknown variable?
>
> > For instance,
>
> > var foo = {
> > "bar": "barVal",
> > "baz": "bazVal"
> > }
>
> > var fooProp = "bar";
>
> > How can I access barVal through fooProp?
>
> > I know this isn't exactly jQuery group discussion but I figured since
> > it was part of a jQuery system I could get away with it. Thanks!

Reply via email to