2010-01-19 4 views
2

J'ai quelques JSON qui ressemble à ce qui suit:JSON avec JQuery Parsing

[{"Age":35,"FirstName":"Peyton","LastName":"Manning"}, 
{"Age":31,"FirstName":"Drew","LastName":"Brees"}, 
{"Age":58,"FirstName":"Brett","LastName":"Favre"}] 

Ce JSON est passé dans une fonction que je l'ai créé appelé parseJSON. Cette fonction ressemble à ceci:

function parseJSON(result) 
{ 
    $.each(result.items,function(i,item) { 
    alert("First Name: " + item.FirstName); 
    alert("Age: " + item.Age); 
    }); 
} 

Quand je lance ce code bien, je reçois une erreur JavaScript qui dit « G est indéfini ». Comment analyser mon JSON avec JQuery de sorte que je puisse lire les propriétés Prénom et Âge?

Merci!

+2

Brett Favre ... 58? – mportiz08

Répondre

0

Vous utilisez une variable appelée result qui n'existe pas dans votre fonction. Peut-être, il devrait être remplacé par json.

function parseJSON(json) 
{ 
    $.each(json,function(i,item) { 
    alert("First Name: " + item.FirstName); 
    alert("Age: " + item.Age); 
    }); 
} 

EDIT: en fonction de votre mise à jour, je pense qu'il est parce que vous référencez une propriété sur le résultat qui n'existe pas, à savoir items. La valeur nulle transmise à chaque fonction provoque l'arrêt de jQuery sur une fonction interne.

+2

Non. L'objet n'a pas de propriété 'items'. C'est simplement un tableau d'objets. Chaque objet a une propriété 'Age',' FirstName', etc., donc je pense que c'est correct comme je l'ai. - C'était en réponse à un commentaire qu'il devrait être 'json.items' au lieu de simplement' json'. – tvanfosson

+1

Je devrais aussi ajouter que je suppose que ce n'est pas une chaîne, c'est-à-dire que la chaîne json a déjà été "objectivée". – tvanfosson

+0

Comment modifier un nom de variable pour résoudre les problèmes? – naugtur

0

Vérifiez votre code complet, non seulement l'exemple présenté ici pour « G ». Je suppose qu'il y a une erreur de syntaxe quelque part. Quant à l'utilisation de "résultat" - il pourrait s'agir d'une variable globale, mais tvanfosson a raison je pense. Ça n'a pas l'air bien ici.

+1

Je pense que G est probablement une fonction jQuery interne après minification. – tvanfosson

1

est ici une fonction de travail qui utilise le boîtier de votre échantillon.

var result = [{ 
    "Age": 35, 
    "FirstName": "Peyton", 
    "LastName": "Manning" 
}, { 
    "Age": 31, 
    "FirstName": "Drew", 
    "LastName": "Brees" 
}, { 
    "Age": 58, 
    "FirstName": "Brett", 
    "LastName": "Favre" 
}]; 

function parseJSON(result){ 
    $.each(result, function(index, object){ 
     $.each(object, function(i, o){ 
      alert(i + " = " + o); 
     }) 
    }) 
} 

parseJSON(result); 
2

analyse syntaxique la plus simple JSON par JS natif:

function parseJSON(result) 
{ 
    for(var i in result) { 
    var item = result[i]; 
    alert("First Name: " + item.FirstName); 
    alert("Age: " + item.Age); 
    } 
} 
+0

Je suis d'accord, contournement jQuery entièrement –