11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'utilise jQuery pour envoyer une requête AJAX qui me renvoit une string JSON.

Tout fonctionnait jusqu'à mon retour du weekend et maintenant mon objet Javascript initialisé à partir de cette string me retourne undefined.

J'ai récupéré la string JSON dans FireBug et je l'ai validé dans un validateur JSON (http://www.jsonlint.com/)

Voici la string JSON que je reçois du serveur :


[{"UpdateId": 80,"ReleaseId": 0,"AirportId": 326,"UpdateWorkflowState": {"State":"InProduction","Name":"In Production"},"UpdateImageGenerator": {"Type":"XX","Name":"XX"},"UpdatePriority": {"State":"FullUpdate","CssClass":"backColorCyan","NumberOfDays":"0","Name":"Full Update"},"UpdateViewRequirements": {"State":"NotStarted","Image":"bullet_red.gif","Enabled":"True","Name":"Not Started"},"UpdateViewGIS": {"State":"NotStarted","Image":"bullet_red.gif","Enabled":"True","Name":"Not Started"},"UpdateViewDesign": {"State":"NotStarted","Image":"bullet_red.gif","Enabled":"True","Name":"Not Started"},"UpdateViewQuality": {"State":"NotStarted","Image":"bullet_red.gif","Enabled":"True","Name":"Not Started"},"UpdateStep": {"State":"Design"},"UpdateJeppChartDate": "6/9/2004 12:00:00 AM","UpdateJeppesenECD": "6/9/2011 12:00:00 AM","UpdateReleaseDate": "6/9/2011 12:00:00 AM","UpdateCreatorUser": {"UserDisplayName":"M. X","UserEmail":"XXX@XXX.com"},"UpdateDateCreated": "5/1/2009 2:52:38 PM","UpdateDateInProduction": "1/1/0001 12:00:00 AM","UpdateDateUploadedToAlienbrain": "1/1/0001 12:00:00 AM"}]


J'instancie mon objet de cette façon :


var obj = eval('(' + result + ')');

// Retourne [Object]
alert(obj);

// Retourne undefined
alert(obj.UpdateId); // ou toute autre propriété


Voilà je ne sais plus quoi faire Smiley decu
Je crois avoir trouvé la solution...

J'ai remarqué que j'ajoutais des crochets à ma string JSON comme si je retournais un tableau d'objets.

Donc, pour accéder aux propriétés je dois faire obj[0].UpdateId !!

Merci.
...ou ne pas retourner ton objet entre crochets, ce qui serait plus conforme à une string JSON Smiley smile