Hi Jason,
              I would like to know how a multiple JSON request works.
Say the file called makerequest.php in my server generates a JSON
object when a value is posted to it (let it be the ID).

So as soon as the ID is passed to makerequest.php it returns a JSON
string which we fetch into our app.
So when it comes to multiple requests. What I have assumed is that...

gadgets.io.MethodType.POST will open the file makerequest.php and pass
all the arguments(ID) to it one by one, so the file makerequest.php
will generate a long JSON string for all the values passed. (I assume
that makerequest.php is opened only once for all the values passed).

OR

gadgets.io.MethodType.POST will open the file makerequest.php for each
of the values passed. That is, say i have 10 IDs to pass. So
makerequest.php is called ten times in which eact time one ID is
passed and the respected JSON string is fetched.

Which one is correct?






On Jul 10, 12:01 pm, Jason <[EMAIL PROTECTED]> wrote:
> 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 opensocial-orkut@googlegroups.com
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