Я новичок в RESTful WCF-сервисах, так что несите меня. Я пытаюсь создать простую службу RESTful WCF, которая возвращает список студентов как ответ json. Все работает хорошо до момента, когда я пытаюсь преобразовать строку json обратно в список объектов Student на клиенте.
Вот мой контракт на операцию:
[OperationContract]
[WebGet(UriTemplate = "Students/", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
public List<Student> FetchStudents()
{
//Fetch and return students list
}
Клиентский код:
static void Main(string[] args)
{
HttpClient client = new HttpClient("http://localhost/StudentManagementService/StudentManagement.svc/");
response = client.Get("Students/");
response.EnsureStatusIsSuccessful();
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
string str = response.Content.ReadAsString();
List<Student> st = json_serializer.Deserialize<List<Student>>(str);
}
Этот код явно не работает, потому что строка json, возвращаемая службой, выглядит следующим образом:
{"FetchStudentsResult":[{"Course":"BE","Department":"IS","EmailID":"[email protected]","ID":1,"Name":"Vinod"}]}
По какой-то причине ответ json завершается внутри FetchStudentsResult. Теперь в режиме отладки, если я принудительно удалю этот обертку FetchStudentsResult, моя десериализация работает отлично.
Я пробовал DataContractJsonSerializer, но результат точно такой же. Может кто-нибудь сказать мне, что мне не хватает?