2009-10-07 9 views
0

drôle comme il peut paraître, je transforme mes données datatable dans une chaîne qui ressemble à quelque chose comme ceci:Asp.Net MVC retournant un Json d'une chaîne

{ blocks: [ 
{"fromAge" : "60","fromAmount" : "0","toAge" : "64","toAmount" : "65000","color" : "red","orderNo" : "2"}, 
{"fromAge" : "66","fromAmount" : "0","toAge" : "72","toAmount" : "12000","color" : "red","orderNo" : "4"}, 
{"fromAge" : "64","fromAmount" : "0","toAge" : "72","toAmount" : "34400","color" : "red","orderNo" : "1"}, 
{"fromAge" : "64","fromAmount" : "19500","toAge" : "66","toAmount" : "50750","color" : "red","orderNo" : "3"} 
]} 

avec le ideea que « blocs » est quelque chose comme un tableau avec 4 dicitionaries, puis avec cette action que je retourne la chaîne à la vue:

public ActionResult ChartDetails() 
{  
     return Json(GetJson(datatable)); 
} 

getJSON (DataTable dt) est la méthode qui retourne la chaîne, et en vue que je reçois ceci:

"{ blocks: [{\"fromAge\" : \"60\",\"fromAmount\" : \"0\",\"toAge\" : \"64\",\"toAmount\" : \"65000\",\"color\" : \"Color [Orange]\",\"orderNo\" : \"2\"}, {\"fromAge\" : \"66\",\"fromAmount\" : \"0\",\"toAge\" : \"72\",\"toAmount\" : \"12000\",\"color\" : \"Color [Green]\",\"orderNo\" : \"4\"}, {\"fromAge\" : \"64\",\"fromAmount\" : \"0\",\"toAge\" : \"72\",\"toAmount\" : \"34400\",\"color\" : \"Color [Blue]\",\"orderNo\" : \"1\"}, {\"fromAge\" : \"64\",\"fromAmount\" : \"19500\",\"toAge\" : \"66\",\"toAmount\" : \"50750\",\"color\" : \"Color [Pink]\",\"orderNo\" : \"3\"}]}" 

Et à cause de tous les "et"} "et" Je ne peux pas lire mon Json avec JQuery, existe-t-il une méthode pour renvoyer une chaîne avec un codage normal dans mon cas?

Répondre

2

La chaîne que vous voyez est JSON, mais correctement encodée en tant que chaîne Javascript. Vous devez toujours l'analyser en Javascript dans les objets pour l'utiliser avec jQuery.

Voir l'analyseur JSON « officiel » de json.org ici: https://github.com/douglascrockford/JSON-js Si vous avez dans votre environnement, vous pouvez le faire:

var jsonString = /* my string from the GetJson call */ 
var data = JSON.parse(jsonString); 

Et alors vous devriez être en mesure d'utiliser des « données » comme une bonne liste de cartes.

+0

Problème résolu! Merci! Je suis vraiment nouveau à javascript et Json ... et aujourd'hui était une longue journée de recherche :) – andreiursan

Questions connexes