2010-05-04 6 views
0

J'utilise asp.net mvc avec jquery ... J'ai fait un appel json à une méthode de contrôleur et il renvoie l'objet json [Object object] pour moi. Je ne veux pas que, au lieu que je veux obtenir la chaîne JSON ... Toute suggestion ...si c'est un getJSON() valide dans jquery?

$(document).ready(function() { 
     $.getJSON('Materials/GetMaterials', null, function(data) { 
      alert(data); 
     }); 
    }); 

J'ai donné alert(data.d); et il est undefined

public JsonResult GetMaterials() 
    { 
     var materials = consRepository.FindAllMaterials().AsQueryable(); 
     return Json(materials); 
    } 

Répondre

0

getJSON retourne un objet JSON. Si ce n'est pas ce que vous voulez, vous ne devriez pas l'utiliser. Vous pouvez utiliser $ .ajax à la place et définir le type de contenu à text/plain et vous recevrez les données sous forme de chaîne. Cependant, je ne vois pas pourquoi vous voudriez travailler avec une chaîne au lieu d'un objet.

Vous pouvez éventuellement utiliser la méthode JSON.stringify de la bibliothèque json2 pour transformer un objet en chaîne.

+0

@Mattias Ok comment puis-je itérer objet JSON ... Pensez 10rows contenant '' UserName' et EmailId' .... Je veux itérer ces objets avec ' data.Username' et ' data.EmailId ' –

+0

@Mattias Est-ce possible? –

+0

@Pandiya Chendur, bien sûr que c'est possible. Vous avez une boucle for en javascript que vous pouvez utiliser. jQuery a une méthode each qui boucle sur une collection. –

1

Je viens de trouver la réponse,

$(document).ready(function() { 
     $.getJSON('Materials/GetMaterials', null, function(data) { 

     $.each(data , function(index,d) { 
      alert(d.Id) 
     }); 

     }); 
    }); 
0

Essayez d'utiliser console.log (+ utilisation Firebug ou inspecteur web) au lieu d'alerte(). Vous serez en mesure d'étendre la structure de l'objet json renvoyé et de déterminer comment accéder aux données que vous recherchez.

+0

@Ben j'ai eu la réponse ... –