Asp.Net MVC возвращает Json из строки - PullRequest
0 голосов
/ 07 октября 2009

Как ни странно, я преобразовал свои данные в строку, которая выглядит как-то как это:

 { 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"}
]}

с идеей, которая "блокирует", является чем-то вроде массива с 4-мя диктаторами, затем этим действием я возвращаю строку в View:

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

GetJson (DataTable dt) - это метод, который возвращает строку, и я получаю следующее:

"{ 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\"}]}"

И из-за всех \ "и"} и "я не могу прочитать мой Json с помощью JQuery, есть ли какой-нибудь метод для возврата строки с нормальной кодировкой в ​​моем случае?

1 Ответ

2 голосов
/ 07 октября 2009

Строка, которую вы видите, является JSON, но правильно закодирована как строка Javascript. Вам все еще нужно разобрать его в Javascript на объекты, чтобы использовать его с jQuery.

Смотрите "официальный" JSON-парсер с json.org здесь: https://github.com/douglascrockford/JSON-js Если у вас есть это в вашей среде, вы можете сделать это:

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

И тогда вы сможете использовать «данные» в качестве правильного списка карт.

...