Я использовал разработчика в библиотеке обмена сообщениями собственной разработки. Ядро библиотеки получало данные из провода, собирая его с экземпляром Разработчика, тогда, как только Разработчик решил, что это имеет все, что это должно было создать экземпляр сообщения, Разработчика. GetMessage () создавал экземпляр сообщения с помощью данных, собранных от провода.
WebMethod может обслуживать ту же информацию, что и XML, и JSON. Вам нужно указать, какой формат вы хотите (dataType) в клиенте, когда вы отправляете свой запрос.
Кроме того, вы не должны сериализовать объект в JSON вручную, а должны возвращать ролей , и он будет сериализован в JSON, если ваш клиент запросит данные как JSON.
EDIT
Пример jQuery (обратите внимание на параметр dataType):
$.ajax({
type: 'GET',
url: 'http://dev.formshare.gologictech.com/JSON/JSONService.asmx/GetUserRoles',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: '{"JSONUserCode":"1234"}',
success: myCallback
});
Стоит отметить, что объект не будет возвращен точно в формат, который вы указали, а, скорее, завернутый в объект:
{ d: [ {"Name":"Accounts Payable"}, {"Name":"Payroll"} ] }
Это, однако, на самом деле весьма желательно, для дополнительной безопасности
Убедитесь, что ваш класс службы имеет атрибут [ScriptService]. По умолчанию этот атрибут не добавлен.