找回密码
 会员注册
查看: 152|回复: 0

asp.net返回JSON格式数据总结

[复制链接]

250

主题

1

回帖

819

积分

管理员

积分
819
发表于 2024-2-29 08:45:54 | 显示全部楼层 |阅读模式

我发现自己写过好几篇相关主题的文章:asp.net中如何返回JSON格式的数据、asp.net中如何返回JSON格式的数据。现在回过头来看看这些文章,五花八门。尽管如此,每次遇到要返回JSON,我仍然一脸茫然,需要翻出这些文章查阅一番。

来个总结吧。

一、asp.net web api

这是for api的,有别于mvc

  1. using System.Web.Http;
  2. using System.Web.Http.Results;
  3. public class HyzController : ApiController
  4. {
  5. [HttpGet]
  6. [Route("api/base/hyz/zxz")]
  7. public JsonResult<List<Zxz>> GetZxz()
  8. {
  9. var data = new List<Zxz>()
  10. {
  11. new Zxz()
  12. {
  13. Id = 1,
  14. Name = "广州",
  15. Parent = "天河区",
  16. SubNum = 9,
  17. Subs = new List<Hyz>()
  18. {
  19. new Hyz()
  20. {
  21. Id = 2,
  22. Name = "天园街"
  23. },
  24. new Hyz()
  25. {
  26. Id = 3,
  27. Name = "棠下街"
  28. }
  29. }
  30. }
  31. };
  32. return Json(data);
  33. }
复制代码

二、asp.net web api中强制返回格式为JSON

asp.net web api 默认的结果传送方式是XML。但可以设置为JSON。方法为在WebApiConfig里加入一句:

  1. public static class WebApiConfig
  2. {
  3. public static void Register(HttpConfiguration config)
  4. {
  5. // Web API 路由
  6. config.MapHttpAttributeRoutes();
  7. config.Routes.MapHttpRoute(
  8. name: "DefaultApi",
  9. routeTemplate: "api/{controller}/{action}/{id}",
  10. defaults: new { id = RouteParameter.Optional }
  11. );
  12. config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));//改为JSON方式
  13. }
  14. }
复制代码

三、asp.net MVC

  1. public ContentResult GetUser()
  2. {
  3. return new ContentResult {
  4. ContentEncoding = Encoding.GetEncoding("utf-8")
  5. ,ContentType = "application/json"//<-----------------------------------
  6. ,Content = @"{
  7. ""code"" : ""0",
  8. ""desc"" : ""请求数据成功!",
  9. ""dataobj"" : [ {
  10. ""action"" : ""I",
  11. ""userCode"" : ""001",
  12. ""userName"" : ""张三""
  13. }, {
  14. ""action"" : ""U",
  15. ""userCode"" : ""002",
  16. ""userName"" : ""李四""
  17. } ]}"
  18. };
  19. }
复制代码

返回类型用JsonResult也可以,但无法应用预先拼好的json字符串

参考文章:ASP.NET MVC 提供与访问 Web Api

四、不管是WEB API还是MVC,直接返回JSON对象

  1. using Newtonsoft.Json;
  2. [System.Web.Http.HttpGet]
  3. public JObject GetTags(string account)
  4. {
  5. JObject jobj = new JObject();
  6. //ViewTag是自定义类
  7. IList<ViewTag> list = customViewService.GetTags(ProjectId,account);
  8. jobj.Add("total", (JToken)list.Count());
  9. jobj.Add("rows", JArray.FromObject(list));
  10. return jobj;
  11. }
复制代码

参考文章:
服务器端将复合json对象传回前端


来源:https://blog.csdn.net/leftfist/article/details/92664354
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 13:00 , Processed in 1.178756 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表