Frank
Frank

Reputation: 634

output JSON array jQuery

I get this JSON array from a REST API via AJAX:

{
  "results": [
    {
    "language_code": "es",
    },
    {
    "language_code": "gl",
    },
    {
    "language_code": "pt",
    }
  ]
}

Within the AJAX success function I would like to alert each language_code. For some reason it's only working for the first item "es".

Here's the code:

 success: function(json) {

 $(json.results).each(function(item) {
    alert($(this)[item].language_code);
 });

 }

The each loop works and alerts "0", "1" and "2" if I do something like this: alert(item); - however, in the upper form it only reads the first item and then returns an error.

Any help would be appreciated. Thanks!

Upvotes: 0

Views: 48

Answers (2)

DinoMyte
DinoMyte

Reputation: 8868

Try this. You would need to add another iteration block to get the all sub values. This would work for multiple nesting.

$.each(json,function(i) {
   $.each(json[i],function(x) // yields each child in 'results'
   {
      alert(json[i][x]["language_code"]);
   });
 });

Example : https://jsfiddle.net/DinoMyte/rv3wwpsf/4/

Upvotes: 0

user4227915
user4227915

Reputation:

Try this instead:

$.each(json.results, function(key, val) {
    alert( val.language_code );
});

Upvotes: 2

Related Questions