Chris,
Here is the actual JSON I was returning, and then using Object.values(
jsonarray.VidID)[i], etc, etc to grab the values:

{"VidPathStr":{"1":"anotherpath","2":"somepath"},"VidDescrip":{"1":"another
description","2":"some description"},"VidID":{"1":3473,"2":3472}}

Sorry for the confusion earlier.  (which do you think is a better/ faster
structure to access -- the array of hashes, or this JSON above?).  Your
thoughts?
-Mark



On 6/9/07, Mark Holton <[EMAIL PROTECTED]> wrote:
>
> Hey guys,
> Thanks for the great responses!
>
> The other day I ended up creating my associative array on the server side
> so that it instead of an array of objects, it output a JSON string that was
> of the format :
> {"VidPathStr":{"1":"anotherpath","2":"somepath"},"VidDescrip":{"1":"another
> description","2":"some description"},"VidID":{"1":3473,"2":3472}}
>
> ...this was different than what I had before which was indeed '[ {
> hash1... }, { hash2... } ...]'
>
> This way I was able to access the hashes as in the for loop below:
>
>         function SearchVidSid2(SID) {
>           var pars = 'FORM.Sid=' + parseInt(SID);
>           var url = "/ss/Model/AjaxCalls/caller_getVidsBySid2.cfm"
>
>           new Ajax.Request(url,
>             {
>                 method: 'post',
>                 parameters: pars,
>                 onComplete: function(transport)  //get from JSON string
>                   {
>                     var jsonarray = transport.responseText.evalJSON(true);
>
>                     for (var i=0; i < Object.keys(jsonarray.VidID).size();
> i++) {
>                         // for simplicity's sake in demonstrating how I
> accessed the values in the hashes, showing alerts for each iteration
>                         alert(Object.values(jsonarray.VidID)[i]);
>                         alert(Object.values(jsonarray.VidPathStr)[i]);
>                         alert( Object.values(jsonarray.VidDescrip)[i]);
>
>                     }
>                   ....
>
> How does that look?
> (btw, in response to your message, in Seattle it's 3:03 a.m.... time to go
> to bed (finally)! :)  ...would like to hear your thoughts though!
> cheers,
> Mark
>
> On 6/9/07, Christophe Porteneuve <[EMAIL PROTECTED] > wrote:
> >
> >
> > Hey Gareth, howzit? :-)
> >
> > Gareth Evans a écrit :
> > > Could someone else identify the best way to get an array of hashes
> > > (which is returned as a string from an ajax call) and then get
> > something
> > > you can iterate?
> >
> > So if I get you right, you're saying that the following responseText
> > (just abbreviating with '...' in there):
> >
> > '[ { hash1... }, { hash2... } ...]'
> >
> > won't get eval'd properly when you do xhr.responseText.evalJSON
> > ().  Correct?
> >
> > What if you tried to wrap it in an extra object with a single property,
> > something like:
> >
> > '{ data: [ { hash1... }, { hash2... } ...] }'
> >
> > And then you'd access the data property of the eval'd object?  Would
> > that work for you?  I'm sorry I don't have time to test this just now,
> > but I thought I'd suggest a possible lead.
> >
> > 'HTH
> >
> > --
> > Christophe Porteneuve aka TDD
> > [EMAIL PROTECTED]
> >
> > > >
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to