Может ли кто-нибудь объяснить мне, как ASP.NET обрабатывает преобразование из объекта класса в объект JSON в WebMethods?WebMethod автоматически возвращает объект класса как JSON
Например, вы следующий WebMethod, который возвращает объект Person
:
[WebMethod]
public static Person GetPerson()
{
Person p = new Person()
{
Id = 1,
Name = "Test"
};
return p;
}
В моей JQuery, где я называю WebMethod я получаю ответ, который содержит из объекта JSON.
Как ASP.NET сделал это автоматически? Использует ли он класс JavaScriptSerializer
?
Также вы видите множество примеров использования конвертеров JSON для преобразования объекта класса в объект json. Почему это? Это из-за класса JavaScriptSerializer
, который он использует, и его плохой производительности или ...?
Боковое примечание: 'WebMethod' больше не поддерживается. Если вам нужен API, основанный на JSON или XML, лучше всего взглянуть на [ASP.NET Web API] (http://www.asp.net/web-api), который использует Json.NET Newtonsoft для обработки сериализации JSON. – mason
Я использую ASP.NET Webforms, где у меня есть некоторые вызовы ajax, могу ли я использовать веб-API внутри моего проекта webforms? – Mivaweb
Да! Вы, конечно, можете. У Microsoft есть эта инициатива под названием [Один ASP.NET] (http://channel9.msdn.com/Events/Visual-Studio/Launch-2013/WC103). В основном все службы должны получать те же функции (где это применимо), и вы можете смешивать и сопоставлять свои проекты. Я фактически начал использовать веб-API с веб-формами, хотя теперь я изучаю MVC. Это в основном так же просто, как добавление пакета NuGet, настройка некоторой маршрутизации, тогда вы можете практически скопировать код веб-метода в функцию веб-API. См. Ссылку в моем первом комментарии для начала шагов. – mason