Hi Prithvi. An example of a JSON response is provided in this newly
published article and pasted below:

http://code.google.com/apis/opensocial/articles/cloud.html

{"resultsCollection":[
    { "name" : "01495306580392390900",
      "photos" : [ { "url":"http://foo";, "tags":["Aruba", "snorkling",
"fish"] },
                        { "url":"http://bar";, "tags":["snorkling",
"shipwreck"] } ] },
    { "name" : "14088281537290874435",
      "photos" : [ { "url":"http://baz";, "tags":["food", "pasta",
"linguini"] },
                        { "url":"http://raz";, "tags":["food",
"dessert", "apple pie"] } ] }
]}

Notice that the result is a single array called resultsCollection. The
array contains various objects, one per requested friend. The friend
objects have the name/ID of the friend and an array of photo objects
associated with that friend (the example is a photo sharing
application).

A callback would look like this:

function callback(respItem) {
  var resultsCollection = respItem.data.resultsCollection;
  for (var i=0; i<resultsCollection.length; i++) {
    // Process each friend's data
  }
}

I hope this helps. Please let me know if you have any additional
questions.

- Jason

On Jul 5, 1:29 am, Prithvi Raj <[EMAIL PROTECTED]> wrote:
> Thank you very much for your reply Mr.Jason.
>
> Can you also write a callback function for the example you provided
> above. This will help me a lot!. Iam new to JSON.
> The callback function should be able to print the fetched content for
> each friend....
>
> On Jun 28, 4:19 am, Jason <[EMAIL PROTECTED]> wrote:
>
> > It looks like you're asking two questions here:
> > 1) How do I request data for multiple people with a single request?
> > 2) Why is the ID incrementing not working?
>
> > My answers:
>
> > 1) You skipped most of your makePOSTRequest code but this is how I
> > would change it. You should be able to retrieve the data for all of
> > your friends with a single request instead of firing off a request for
> > each friend. The snippet below assumes that the data that you're
> > storing on your back-end is keyed by the person ID:
>
> > /* ************************************** */
> > var postData = {
> >   people: []
>
> > };
>
> > this.viewerFriends.each(
> >   function(person) {
> >     postData.people.push(person.getId());
> >   }
> > );
>
> > var params = {};
> > params[gadgets.io.RequestParameters.METHOD] =
> > gadgets.io.MethodType.POST;
> > params[gadgets.io.RequestParameters.POST_DATA] =
> > gadgets.io.encodeValues(postData);
> > params[gadgets.io.RequestParameters.CONTENT_TYPE] =
> > gadgets.io.ContentType.JSON;
> > params[gadgets.io.RequestParameters.AUTHORIZATION] =
> > gadgets.io.AuthorizationType.SIGNED;
> > ...
> > gadgets.io.makeRequest(url, callback, params);
> > /* ************************************** */
>
> > Notice that I'm expecting a JSON object back. This way, I can create
> > an object for each person on the server, store it in an array, and
> > send this back to the client as a JSON-encoded string so I can access
> > all of the friend data in my callback. Please let me know if you have
> > any questions on how this works. (For the record, you can also format
> > an XML response and use gadgets.io.ContentType.DOM if you prefer.)
>
> > 2) I'm a bit confused on why you're using incrementing IDs. This
> > assumes that you know the number of friends to begin with -- if you
> > create 10 divs statically with IDs friend1, friend2, ..., friend10
> > then you can only show 10 friends. I would create these divs
> > dynamically instead. You can still assign them an ID if you wish, but
> > you don't need to:
>
> > // iterating through the number of objects returned in the JSON/DOM
> > result above:
> > var newDiv = document.createElement();
> > newDiv.id = 'friend'+i;
> > newDiv.innerHTML = ...
> > document.appendChild(newDiv);
>
> > As for your problem above, I'm not sure but it may have been due to:
> > increment=("ifriends"+i); -- should this be increment=("friends"+i);
> > instead?
>
> > I hope this helps. Let me know if you have any questions.
>
> > - Jason
>
> > On Jun 25, 1:06 am, Prithvi Raj <[EMAIL PROTECTED]> wrote:
>
> > > I need to increment <divid="friends0"> ....... <div
> > > id="friends25"> .. and so on...
> > > That is... for every Friend of the user. Iam fetching some data from
> > > my server. And display them.
> > >  I want to create a uniquedivID for each of the html content fetched
> > > for each user. But there is some problem in iterating thediviDs...
> > > there problem is in the statement
> > > document.getElementById(increment).innerHTML = html;  where
> > > 'increment' is a variable containing "friends"+i. where i iterates....
> > > What should i do to make this code work??
>
> > > Here is the code i have used.
> > > ------------------------------------------------------
> > > var i=0;
> > > var increment="friends"+i;
>
> > >  viewerFriends.each(function(person) {
>
> > >  makePOSTRequest();
>
> > > function makePOSTRequest();
> > > {
> > > .
> > > .
> > > .
> > > .
> > >    gadgets.io.makeRequest(url, reqpost, params);
> > >  }
>
> > >   function reqpost(obj) {
>
> > >       var str = obj.text;
> > >       var html =  str.substr(0,400);
>
> > > document.getElementById(increment).innerHTML = html;      // i tried
> > > even (""+increment+"") and without assigning it to a variable i tried
> > > directly also ("friends"+i)
>
> > >   };
>
> > > i=i+1;
> > > increment="ifriends"+i;
>
> > > });
>
> > >  ---------------------------------------
> > > if this is not a proper way. What all the other ways can i fetch data
> > > from my server for each person???
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Orkut Developer Forum" 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/opensocial-orkut?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to