Как заставить Ajax.Net PageMethod возвращать JSON - PullRequest
3 голосов
/ 13 января 2010

Я использую AJAX.Net для вызова ASP.Net PageMethod, который возвращает сериализованные данные JSON JSON

{"d":"[{\"Fromaddress\":\"testfrom1@test.com\",\"Toaddress\":\"testto1@test.com\"},{\"Fromaddress\":\"testfrom2@test.com\",\"Toaddress\":\"testto2@test.com\"}]"}

Заголовок ответа указывает тип содержимого как

"Content-Type   application/json; charset=utf-8"

Однако данные просто доступны в виде строки и, по-видимому, не доступны в виде данных JSON из javascript. Что мне нужно сделать, чтобы работать с возвращенными данными как JSON из JavaScript?

1 Ответ

4 голосов
/ 13 января 2010
var myData = eval('(' + text + ')');

Хотя это может быть угрозой безопасности. Вместо этого вы можете использовать JSON-анализатор, такой как эта доступная форма https://github.com/douglascrockford/JSON-js/blob/master/json2.js

Тогда вы получите запись типа:

var myData = JSON.parse(text);

См. http://www.json.org/js.html для получения дополнительной информации об этом конкретном синтаксическом анализаторе ... Я считаю, что есть другие, из которых можно выбирать, и что они работают очень похоже.

...