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 -~----------~----~----~----~------~----~------~--~---

