Thanks all.

On Jun 29, 1:12 pm, "Michael Geary" <[email protected]> wrote:
> The jQuery example uses data.items because the JSON data it fetches is an
> object with an items property. Load the sample URL in your browser and look
> at the data:
>
> <http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmo...
> &format=json>http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmo...
> format=json
>
> If you remove the jsonFlickrFeed() JSONP wrapper, then the data in skeletal
> form looks like:
>
>     {
>         "title": "Recent Uploads tagged cat",
>         "link": "http://www.flickr.com/photos/tags/cat/";,
>         "description": "",
>         "modified": "2009-06-29T17:21:37Z",
>         "generator": "http://www.flickr.com/";,
>         "items": [
>             {
>                 "title": "Metzler & Ortloff #137X",
>                 "link":
> "http://www.flickr.com/photos/31042...@n02/3671772469/";,
>                 "media": {
>                     "m":
> "http://farm4.static.flickr.com/3613/3671772469_431f0c6df0_m.jpg";
>                 },
>                 "date_taken": "2009-06-29T10:21:37-08:00",
>                 "description": "<p>...<\/p>",
>                 "published": "2009-06-29T17:21:37Z",
>                 "author": "[email protected] (metzlerortloff.cats)",
>                 "author_id": "31042...@n02",
>                 "tags": "cat ilmenau metzler ortloff"
>             },
>             {
>                 // ...another item here, etc...
>             }
>         ]
>     }
>
> As you can see, here the outermost part of the JSON is an object enclosed by
> the {}. This object has an items property, which is the array of data for
> each of the Flickr images. So, if you fetch this JSON object into a variable
> named data, then data.items will be that items array.
>
> If you paste the Flickr response into the JSON viewer that I mentioned in my
> other message, it will show you a nicely formatted tree structure for the
> data. Paste it into the Text tab and you will see an error message at the
> bottom because of the JSONP wrapper. Use the "Strip to {}" button at the top
> to automatically strip out that wrapper. Then click the Viewer tab to see
> the structure of the data.
>
> -Mike
>
> > From: expresso
>
> > Mike thanks a lot.  That is so weird.  I got some ideas from
> >  <http://docs.jquery.com/GetJSON>http://docs.jquery.com/GetJSONand as
>
> you can see from the
>
> > example it's using data.items.
>
> > it's working now.  I just wonder why the jQuery example is
> > using data.items
>
> > On Jun 29, 12:19 pm, "Michael Geary" <[email protected]> wrote:
> > > That's right, your JSON is perfectly valid. You can test it at:
>
> > >www.jsonlint.org
>
> > > Here's the formatted output from that site, with the image
> > tags elided
> > > for clarity, and comments added showing how you'd access
> > each part of
> > > it directly in JavaScript:
>
> > >     // Data
> > >     [
> > >         // Data[0]
> > >         {
> > >             // Data[0].ImageTag
> > >             "ImageTag": "..."
> > >         },
> > >         // Data[1]
> > >         {
> > >             // Data[1].ImageTag
> > >             "ImageTag": "..."
> > >         }
> > >     ]
>
> > > As you can see, what you have is an array of two elements. Each of
> > > those elements is an object with a single property named
> > ImageTag with
> > > a string value.
>
> > > Now back to your code. This is where it goes wrong:
>
> > > $.each(Data.items, function(i, item) {...});
>
> > > "Data" here is the JSON data, and you're trying to get its "items"
> > > property and use it as an array. But there is no "items" property -
> > > Data itself is the array, so you'd use it directly:
>
> > > $.each(Data, function(i, item) {...});
>
> > > JSON that would work with your original code using Data.items would
> > > look like this:
>
> > >     // Data
> > >     {
> > >         // Data.items
> > >         "items": [
> > >             // Data.items[0]
> > >             {
> > >                 // Data.items[0].ImageTag
> > >                 "ImageTag": "..."
> > >             },
> > >             // Data.items[1]
> > >             {
> > >                 // Data.items[1].ImageTag
> > >                 "ImageTag": "..."
> > >             }
> > >         ]
> > >     }
>
> > > BTW, I suggest using variable names that begin with lower case. The
> > > upper case first letter makes people think it's the name of
> > a constructor.
>
> > > -Mike
>
> > > > From: expresso
>
> > > > some tells me that my original JSON is totally valid with
> > the [ and
> > > > ]
>
> > > > On Jun 29, 11:03 am, MorningZ <[email protected]> wrote:
> > > > > <http://en.wikipedia.org/wiki/JSON>
>
> http://en.wikipedia.org/wiki/JSON
>
> > > > > will show you what it should look like... notice the
> > > > outside symbols
> > > > > are { ... }, not [ .... ]
>
> > > > > again, you should look at this if you are working with .NET
> > > > and JSON,
> > > > > it really takes all this guess work from the equation:
>
> > > > > <http://james.newtonking.com/pages/json-net.aspx>
>
> http://james.newtonking.com/pages/json-net.aspx
>
>
>
> > > > > On Jun 29, 12:01 pm, expresso <[email protected]> wrote:
>
> > > > > > Ok, so what should it be wrapped in or how should I
> > reformat this?
>
> > > > > > On Jun 29, 10:58 am, MorningZ <[email protected]> wrote:
>
> > > > > > > Wow, is posting the same thing every 3 mins to bump
> > your topic
> > > > > > > annoying....
>
> > > > > > > Anyways,
>
> > > > > > > your results wrapped in [ .... ] signifies an Array, not a
> > > > > > > JSON object....  hence ".getJSON" has no idea what
> > to do with
> > > > > > > it
>
> > > > > > > On Jun 29, 11:53 am, expresso <[email protected]> wrote:
>
> > > > > > > > So is this valid JSON that jQuery can parse? or
> > do I need an
> > > > > > > > initial level such as "Images":
>
> > > > > > > > [{"Images" :
> > > > > > > > [{"ImageTag":"&lt;img
> > > > src=&quot; <http://www.xxx.com/image/473.jpg>
>
> http://www.xxx.com/image/473.jpg";> > > > > > > 
> alt=&quot;&quot;&gt;"},{"ImageTag":"&lt;img
> > > > > > > > src=&quot; <http://www.xxx.com/image/4852.jpg>
>
> http://www.xxx.com/image/4852.jpg";> > > > > > > alt=&quot;&quot;&gt;"} ]]
>
> > > > > > > > On Jun 29, 10:37 am, expresso <[email protected]> wrote:
>
> > > > > > > > > Ok, figured out that data.items is undefined.
> > Not sure why
> > > > > > > > > because here's the json my url returns:
>
> > > > > > > > > [{"ImageTag":"&lt;img
> > > > src=&quot; <http://www.xxx.com/image/473.jpg>
>
> http://www.xxx.com/image/473.jpg";> > > > > > > > 
> alt=&quot;&quot;&gt;"},{"ImageTag":"&lt;img
>
> > > > src=&quot; <http://www.xxx.com/image/4852.jpg>
>
> http://www.xxx.com/image/4852.jpg"alt=&quot;&quot;&g
>
> > > > > > > > > t;"}]
>
> > > > > > > > > On Jun 29, 10:33 am, expresso
> > <[email protected]> wrote:
>
> > > > > > > > > > I get the following error:
>
> > > > > > > > > > G is undefined
> > > > > > > > > > init()()jquery-1....2.min.js (line 12)
> > > > (?)()()Carousel.aspx
> > > > > > > > > > (line 30) I()jquery-1....2.min.js (line 19)
> > > > > > > > > > F()()jquery-1....2.min.js (line 19) [Break on this
> > > > > > > > > > error] (function(){var
> > l=this,g,y=l.jQuery,p=l.....each
> > > > > > > > > > (function(){o.dequeue(this,E)})}});
>
> > > > > > > > > > in jquery-1.3.2.min.js
>
> > > > > > > > > > when I call this method of mine:
>
> > $.getJSON(" <http://localhost:59396/xxx/xxxHandler.ashx>
>
> http://localhost:59396/xxx/xxxHandler.ashx?
>
> > > > > > > > > > action=xxxjson",
> > > > > > > > > >         function(Data) {
> > > > > > > > > >         $.each(Data.items, function(i, item) {
> > > > > > > > > >         alert('got here');
> > > > > > > > > >         carousel.add(i,
> > > > > > > > > > mycarousel_decodeEntities(item.ImageTag));
> > > > > > > > > >                 if (i == 3) return false;
> > > > > > > > > >             });
> > > > > > > > > >         });
>
> > > > > > > > > > I know I can get inside function(Data){ and that
> > > > the error
> > > > > > > > > > starts at $.each I believe

Reply via email to