【问题标题】:How to get single list item from response message in web api如何从 web api 中的响应消息中获取单个列表项
【发布时间】:2018-12-04 14:51:20
【问题描述】:

我是 web api 的新手。我有一个方法,它从响应消息中返回 3 个对象。我想从响应消息中获取特定对象,

public HttpResponseMessage GetAllStudents(HttpReqestMessage request)
{
   HttpResponseMessage response = null;
   return CreateHttpResponse(request, () =>
   {
      // some logics here
      response = request.CreateResponse(HttpStatusCode = OK, new {success = true, StudentName, ListOfStudents, ListOfSubjects});

      return response;
   });
}

在上面的代码中,我想从响应消息中单独获取 ListOfStudents 对象。请任何人帮助我得到这个。

【问题讨论】:

  • 您是说您只想在这段代码中获取该对象吗?还是在调用此服务的代码中?如果是后者,该代码在哪里?响应格式是什么?您目前如何阅读该回复?
  • 这感觉就像XY problemCreateHttpResponse 是做什么的?我们怎么知道它会返回什么?
  • 试试这个:response.Content.ReadAsStringAsync().Result,你会得到一个 json 字符串作为回报。接下来尝试反序列化 json 字符串:stackoverflow.com/questions/4611031/…
  • 我猜你可以使用另一个ReadAs...Async(),但不确定是哪个。

标签: c# asp.net-mvc asp.net-web-api


【解决方案1】:

我认为您的 json 格式错误,您应该为每个列表创建一个属性,检查下一个示例:

public HttpResponseMessage GetAllStudents(HttpReqestMessage request)
{
   HttpResponseMessage response = null;
   return CreateHttpResponse(request, () =>
   {
      // some logics here
      response = request.CreateResponse(HttpStatusCode = OK, new {success = true, studentName = StudentName, listOfStudents = ListOfStudents, listOfSubjects =  ListOfSubjects});
      return response;
   });
}

使用 jquery 获取此示例

$.get("GetAllStudents", function(data) {
   if (data.success)
   {
      console.log(data.listOfStudents);
   }
});

【讨论】:

    猜你喜欢
    • 2020-04-11
    • 2019-05-31
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多