Я довольно новичок в сервисах 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":"b@gmail.com","ID":1,"Name":"Vinod"}]}
По какой-то причине ответ json оборачивается внутри FetchStudentsResult. Теперь в режиме отладки, если я принудительно удаляю эту оболочку FetchStudentsResult, моя десериализация работает отлично.
Я пробовал DataContractJsonSerializer, но результат точно такой же. Может кто-нибудь сказать мне, что мне не хватает?