如何在 WEB API 中的 HttpResponseMessage 中格式化列表

本文关键字:HttpResponseMessage 格式化 列表 中的 API WEB | 更新日期: 2023-09-27 18:32:17

在这里,我希望列表"User"作为响应。但它也包含消息。我希望邮件只打印一次。目前它正在打印用户计数次数。

for (int i = 0; i < user.Count; i++)
 {
   if (user[i].Message == "Success")
      {
        resp = new HttpResponseMessage { Content = new ObjectContent(typeof(List<GetUserList>), user, GlobalConfiguration.Configuration.Formatters.JsonFormatter) };
       }
   else
      {
        resp = new HttpResponseMessage { Content = new StringContent("[{'"Message'":'"" + user[i].Message + "'"}]", System.Text.Encoding.UTF8, "application/json") };
       }
 }

结果应该是这样的:

{
  "message": " Successful",
  "supervisorlist": [
  {
    " userID ": "654",
    " forename ": "John"
  },
  {
    " userID ": "655",
    " forename ": "Jack"
  }
 ]
}

如何在 WEB API 中的 HttpResponseMessage 中格式化列表

成功的例子

var responseObj = new { message = "Successful", supervisorlist = users };
resp = new HttpResponseMessage 
        { 
            Content = new StringContent(JsonConvert.SerializeObject(responseObj), 
                                            System.Text.Encoding.UTF8, "application/json") 
        };
bool includeMessage = users.Any(u => u.Message == "Success");
object content = null;
if(includeMessage) {
    content = new { message = "Success", supervisorlist = users };
} else {
    content = new { supervisorlist = users };
}
resp = new HttpResponseMessage { 
            Content = new StringContent(JsonConvert.SerializeObject(content), System.Text.Encoding.UTF8, "application/json") 
        };
相关文章:
  • 没有找到相关文章