2009-08-18 8 views
1

J'essaie de mettre la main sur JQuery et JSON en utilisant un service web ASP.NET. Le Webservice retourne ce résultat:Analyse du tableau JSON dans JQuery

{ 
    MyResult: { 
     Ticket: { 
      "Author": "rd", 
      "CssClass": "RED", 
      "ExpirationDateTime": "2009-08-16T16:55:43.577+02:00", 
      "id": "38", 
      "Message": "We are going down", 
      "ModifiedDateTime": "2009-08-17T11:14:20.5+02:00", 
      "MoreInfo": null 
     } 
    } 
} 

Du côté client J'utilise JQuery pour obtenir le résultat en utilisant la fonction ajax comme ceci:

$.ajax({ 
    type: "POST", 
    url: "TickerFeeder.asmx/GetTicket", 
    data: "{}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(resultJSON) { 
    //-- Please fill your code here for getting the first item from the array into variables 
    } 

Mais je manque les trucs comment récupérer le premier élément du tableau JSON dans certaines variables. Quelque chose comme ça (pseudo-code):

var message = resultJSON[0].Message 
var cssclass = resultJSON[0].CssClass 

Quelqu'un avec un indice, aide?

Merci pour votre aide Vive Frank

Répondre

9

Votre JSON est not valid, vous devez utiliser des guillemets sur les membres MyResult et Ticket.

{ 
    "MyResult": { 
     "Ticket": { 
      "Author": "rd", 
      "CssClass": "RED", 
      "ExpirationDateTime": "2009-08-16T16:55:43.577+02:00", 
      "id": "38", 
      "Message": "We are going down", 
      "ModifiedDateTime": "2009-08-17T11:14:20.5+02:00", 
      "MoreInfo": null 
     } 
    } 
} 

En outre il n'y a aucun tableau en jeu, les tableaux sont définis avec les caractères de crochets [....]literal notation, afin que vous puissiez accéder à vos valeurs directement:

resultJSON.MyResult.Ticket.Message; 
resultJSON.MyResult.Ticket.CssClass; 
0

Ok, trouvé que mon Asp.Net webService produisait un mauvais ensemble de résultats. Ainsi, au lieu de renvoyer un élément de chaîne, j'ai renvoyé un objet complet et géré la conversion Json vers le service Web Asp.Net. Cela a fait l'affaire!