J'utilise jQuery.ajax (...) pour extraire des données JSON d'un service ASP.NET MVC. Lorsque le serveur rencontre une exception, je vous envoie 400 Bad état de demande au client et envoie mon exception comme JsonResult:Comment jQuery désérialise-t-il JSON?
Response.StatusCode = 400;
return Json(new { ex.Message, ex.StackTrace });
Et voici mon code jQuery:
$.ajax(
{
type: "POST",
url: deleteUrl,
dataType: "json",
data:
{
dataItems: dataItems,
toJSON: true
},
success: function(msg)
{
alert(msg[i].dataItem);
},
error: function(request, status, error)
{
alert(request.responseText);
}
});
Mon ASP.NET le code m'envoie à la section d'erreur de mon code JavaScript, et le bloc d'erreur me permet seulement de lire le request.responseText au lieu de travailler avec les objets renvoyés par le serveur. Maintenant, au lieu d'ajouter encore un autre JavaScript à quelque chose comme json_parse et de désérialiser simplement mon Exception, je voudrais simplement tirer parti du même analyseur JSON que jQuery utilise, bien que je ne trouve pas facilement de trouver des informations là-dessus .
Quelqu'un peut-il me diriger dans la bonne direction?
J'ai trouvé un poste (http://www.west-wind.com/weblog/posts/324917.aspx) sur le blog de Rick Strahl qui explique: "Notez que la fonction ajaxJSON nécessite un codage JSON jQuery ne possède aucune fonctionnalité de codage JSON natif (ce qui semble une grande omission, mais a probablement été fait pour préserver le faible encombrement.) Cependant, un certain nombre d'implémentations JSON sont disponibles. Ci-dessus, j'utilise le fichier JSON2.js de Douglas Crockford pour sérialiser le mappage des objets de paramètres dans JSON. " Je pensais que j'avais lu cela changé dans jQuery 1.4 ... –
ce qui a changé était jQuery utilisera maintenant 'JSON.parse' au lieu de' eval' s'il est disponible. jQuery n'a jamais fourni (et ne fournit toujours pas) le support OOTB pour la sérialisation JSON *. –
@Crescent, cela devrait être donné comme une réponse, pas un commentaire. – Cheeso