user3062745
user3062745

Reputation: 96

JSON callback issue

I am new to working with AJAX and JSON and for a while I haven't have any issue. But now I am using Random User Generator -> http://randomuser.me/

The issue is that after I to the AJAX request, I get the JSON object in response but it's not like all the others I've work on. This one has a value that I can't get on the console log.

Object {results: Array[1]}
  results: Array[1]
    0: Object
      seed: "b68b37c1b5346af"
      user: Object
        SSN: "152-27-4426"
        cell: "(316)-378-6161"
        email: "[email protected]"
        gender: "male"
          location: Object
          city: "the colony"
          state: "georgia"
          street: "4660 w belt line rd"
          zip: "38439"

The problem is that if I am trying to get to the zip code but with the code I got stucked on the second object '0'.

This is my code to retrieve all the data as I've show

$.ajax({
      url: randomuserURL,
      dataType: 'json',
      success: function(data){
        console.log(data);
      }
 });

But if I change the console log to:

$.ajax({
      url: randomuserURL,
      dataType: 'json',
      success: function(data){
        console.log(data.results.[0]);
      }
});

I got an error. Also if I just do it like this

console.log(data.results.0);

Can anyone explain me how to handle this?

Upvotes: 1

Views: 60

Answers (1)

Pointy
Pointy

Reputation: 413720

It's not

console.log(data.results.[0]);

it's

console.log(data.results[0]);

The . and [ ] operators are two flavors of the same basic idea, so using both at the same time doesn't make sense. When you're trying to access a property that's got a "clean" name that you know in advance (that is, when the property name isn't determined at runtime), you can use the . operator. Otherwise, it's [ ].

In this case, you do know the property name in advance - it's "0". Unfortunately, "0" isn't a valid identifier name, so you can't use ..

Upvotes: 1

Related Questions