Примеры практического использования JSON в веб-службе ASMX и обратно через jQuery

Может ли кто-нибудь порекомендовать статью об отправке и получении JSON в веб-службу asp.net (любой вариант), в которой используются более практические примеры, чем «hello world».

В идеале, что-то, что охватывает такие темы, как:

Получение одного сложного объекта из веб-службы (для отображения в форме)
Получение набора сложных объектов из веб-службы (для отображения в таблице)
Отправка одного сложного объекта в веб-службу (для обновление базы данных)
Отправить набор сложных объектов в веб-службу (для обновления базы данных)


person tbone    schedule 19.08.2009    source источник
comment
Вы используете Visual Studio 2005? Поэтому вы используете службы ASMX? Знаете ли вы, что Microsoft теперь считает их устаревшей технологией?   -  person John Saunders    schedule 20.08.2009
comment
У меня вариант 2008 года....фрик, так что сейчас рекомендуют?   -  person tbone    schedule 21.08.2009


Ответы (1)


Я нашел эта статья оказалась полезной в прошлом. Он демонстрирует многое из того, что вы хотите увидеть. Надеюсь это поможет!

Изменить: этот вопрос on SO имеет отличный принятый ответ, показывающий передачу сложных данных методу контроллера ASP.NET MVC. Веб-службы работают аналогично в ASP.NET. Они могут принимать аргумент со сложным типом данных, заполненным JSON от клиента. Вы можете заменить метод контроллера на аналогичный WebMethod и вернуть класс, содержащий желаемый результат:

[WebMethod]
public ReturnResult SaveWidget(Widget widget)
{
    // Save the Widget
    return new ReturnResult()
    { 
        Message = String.Format("Saved widget: '{0}' for ${1}", widget.Name, widget.Price) 
    };
}

С этим классом определено:

public class ReturnResult
{
    public string Message { get; set; }
}
person dcharles    schedule 19.08.2009
comment
хорошая статья, но я помню, что у меня были проблемы с включением кэширования для запроса ajax - person ak3nat0n; 19.08.2009
comment
Спасибо за это, похоже, хорошая статья... но получает данные только с сервера... у кого-нибудь есть хороший пример отправки измененных данных обратно на сервер? - person tbone; 19.08.2009
comment
Спасибо за ссылку на другой вопрос SO ... Я не знаю, это MVC, поэтому я думаю, что выполнение того же в стандартных веб-сервисах может немного отличаться. Однако при дальнейшем изучении первой статьи, на которую вы ссылаетесь, во втором примере они извлекают данные, передавая целое число для фильтрации... поэтому передача сложного объекта должна (смеется) быть довольно простым вариантом это. Если разберусь, постараюсь вернуться и опубликовать результаты. - person tbone; 20.08.2009
comment
Пожалуйста. Рад, что смог помочь. Правда, существуют различия между методом контроллера в ASP.NET MVC и методом веб-сервиса в стандартном ASP.NET, но если вы кодируете так, как в моем примере, он будет работать аналогично. - person dcharles; 20.08.2009
comment
-1: не возвращать объект из веб-службы. Возвращает определенный именованный тип. В частности, не возвращайте анонимный тип. Это заставит клиента анализировать XML вместо того, чтобы иметь разумный класс для работы. - person John Saunders; 20.08.2009
comment
Я не знал об этом. Спасибо за разъяснение. Я обновил свой ответ. - person dcharles; 20.08.2009