2010-04-21 4 views
0

WEBMETHOD retourne un tableau d'objets - quelque chose comme ceci sur le côté clientJSON - MSG.D est une erreur non définie

{"d": 
[[{"Amount":100,"Name":"StackOverflow"}, 
{"Amount":200,"Name":"Badges"}, 
{"Amount":300,"Name":"Questions"}]]} 

, lorsque le JSON est référencé à l'aide MSG.D, je reçois un

msg.d is undefined 

erreur. J'utilise jQuery JavaScript Library v1.4.2

Comment accéder aux éléments du tableau d'objets?


Ajout de plus les résultats, le code et les questions:

  1. Je ne vois pas __type dans l'objet JSON qui est retourné. Cela signifie-t-il que l'objet envoyé depuis le serveur n'est pas formaté au format JSON?
  2. Lorsque le type __ ne fait pas partie de la réponse, je ne serai pas en mesure d'utiliser msg.d? (MSG.D est indéfini)

Un peu plus: 1. Je peux accéder aux éléments d'un côté client à l'aide msg [0] [0] .Amount - Comment puis-je spécifiquement le format JSON mon retour objet (du serveur)


code Appel aux PageMethods

PageMethods.BuildParticipantAsync($get('<%=hdn_AjaxControls.ClientID %>').value, fOnSuccess, fOnFailure); 

function onSuccess(msg) 
{ 
alert(msg.d); //This is undefined 
} 

Web Method 
public static object[] BuildParticipantAsync(string lstSAjaxControls) 
{ 
...//do stuff 
return new object[] { ArrayOfObject }; 
} 
+0

Est-ce après une requête ajax? Êtes-vous sûr que l'objet de retour est au format JSON? – czarchaic

+0

permet de voir votre code jquery s'il vous plaît. –

+0

Êtes-vous sûr que JSON est en format corrent? –

Répondre

0

Les gars, voici ce que j'ai trouvé. Parce que, je renvoie un objet [] et non un objet composite d'une classe. Je ne serai pas capable de faire référence en utilisant msg.d [0] .Amount (comme je pensais pouvoir le faire). Je vais devoir utiliser msg [0] [0] .Amount - D'une certaine manière, cela semble très logique.

Questions connexes