将额外的 JSON 对象添加到 Web API 响应
Adding an extra JSON Object to the Web API Response
我需要将一个额外的 JSON 对象附加到由 Web API 方法生成的 JSON 响应。例如:
我现在的代码:
[Route("api/getcomnts")]
public IHttpActionResult GetCommentsForActivity(string actid)
{
List<Comment> cmntList = CC.GetAllComments(actid);
return Ok(cmntList);
}
如果成功检索到评论,我想发送:
"status":"success"
连同它已经作为JSON数组发送的评论列表。
或
"status":"fail"
如果评论列表为空。是否可以将这个名为 JSON 的额外 JSON 对象附加到我已经存在的方法中?
这对我的客户 Android 和 iOS 应用程序来说非常方便 :)
编辑
或者对于这样的场景:
[HttpGet]
[Route("api/registeruser")]
public IHttpActionResult RegisterUser(string name, string email, string password)
{
int stat = opl.ConfirmSignup(name, email, password);
string status = "";
if (stat == 0)
{
status = "fail";
}
else
{
status = "success";
}
return Ok(status);
}
您可以 return Web 匿名对象 API。
[Route("api/getcomnts")]
public IHttpActionResult GetCommentsForActivity(string actid)
{
List<Comment> cmntList = CC.GetAllComments(actid);
var success = cmntList.Count() > 0 ? "success" : "success";
return Ok(new { List = cmntList, success } );
}
**EDIT:**
[Route("api/getcomnts")]
public IHttpActionResult GetCommentsForActivity(string actid)
{
List<Comment> cmntList = CC.GetAllComments(actid);
string status = "";
if(cmntList.Count()!=0)
{
status = "success";
}
else
{
status = "fail";
}
return Ok(new { List = cmntList, status } );
}
你可以试试这个
public HttpResponseMessage Get(string actid)
{
//sample..
if (value == true)
return Request.CreateResponse(HttpStatusCode.OK, getStatus("success"), JsonMediaTypeFormatter.DefaultMediaType);
else
return Request.CreateResponse(HttpStatusCode.OK, getStatus("failed"), JsonMediaTypeFormatter.DefaultMediaType);
}
private object getStatus(string s)
{
var status = new { Status = s };
return status;
}
我需要将一个额外的 JSON 对象附加到由 Web API 方法生成的 JSON 响应。例如:
我现在的代码:
[Route("api/getcomnts")]
public IHttpActionResult GetCommentsForActivity(string actid)
{
List<Comment> cmntList = CC.GetAllComments(actid);
return Ok(cmntList);
}
如果成功检索到评论,我想发送:
"status":"success"
连同它已经作为JSON数组发送的评论列表。
或
"status":"fail"
如果评论列表为空。是否可以将这个名为 JSON 的额外 JSON 对象附加到我已经存在的方法中?
这对我的客户 Android 和 iOS 应用程序来说非常方便 :)
编辑
或者对于这样的场景:
[HttpGet]
[Route("api/registeruser")]
public IHttpActionResult RegisterUser(string name, string email, string password)
{
int stat = opl.ConfirmSignup(name, email, password);
string status = "";
if (stat == 0)
{
status = "fail";
}
else
{
status = "success";
}
return Ok(status);
}
您可以 return Web 匿名对象 API。
[Route("api/getcomnts")]
public IHttpActionResult GetCommentsForActivity(string actid)
{
List<Comment> cmntList = CC.GetAllComments(actid);
var success = cmntList.Count() > 0 ? "success" : "success";
return Ok(new { List = cmntList, success } );
}
**EDIT:**
[Route("api/getcomnts")]
public IHttpActionResult GetCommentsForActivity(string actid)
{
List<Comment> cmntList = CC.GetAllComments(actid);
string status = "";
if(cmntList.Count()!=0)
{
status = "success";
}
else
{
status = "fail";
}
return Ok(new { List = cmntList, status } );
}
你可以试试这个
public HttpResponseMessage Get(string actid)
{
//sample..
if (value == true)
return Request.CreateResponse(HttpStatusCode.OK, getStatus("success"), JsonMediaTypeFormatter.DefaultMediaType);
else
return Request.CreateResponse(HttpStatusCode.OK, getStatus("failed"), JsonMediaTypeFormatter.DefaultMediaType);
}
private object getStatus(string s)
{
var status = new { Status = s };
return status;
}