如何在 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"
}
]
}
成功的例子
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")
};