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

栏目: ASP.NET · 发布时间: 5年前

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

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

来个总结吧。

一、 asp.net web api

这是for api的,有别于mvc

using System.Web.Http;
using System.Web.Http.Results;
public class HyzController : ApiController
{
	[HttpGet]
	[Route("api/base/hyz/zxz")]
	public JsonResult<List<Zxz>> GetZxz()
	{
		var data = new List<Zxz>()
		{
			new Zxz()
			{
				Id = 1,
				Name = "广州",
				Parent = "天河区",
				SubNum = 9,
				Subs = new List<Hyz>()
				{
					new Hyz()
					{
						Id = 2,
						Name = "天园街"
					},
					new Hyz()
					{
						Id = 3,
						Name = "棠下街"
					}
				}
			}
		};
		return Json(data);
	}

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

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

public static class WebApiConfig  
{  
    public static void Register(HttpConfiguration config)  
    {  
        // Web API 路由  
        config.MapHttpAttributeRoutes();  
  
        config.Routes.MapHttpRoute(  
            name: "DefaultApi",  
            routeTemplate: "api/{controller}/{action}/{id}",  
            defaults: new { id = RouteParameter.Optional }  
        );  
        config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));//改为JSON方式  
    }  
}

三、 asp.net MVC

public ContentResult GetUser()
{
	return new ContentResult {
		ContentEncoding = Encoding.GetEncoding("utf-8")
		,ContentType = "application/json"//<-----------------------------------
		,Content = @"{
			""code"" : ""0",
			""desc"" : ""请求数据成功!",
			""dataobj"" : [ {
			""action"" : ""I",
			""userCode"" : ""001",
			""userName"" : ""张三""
			}, {
			""action"" : ""U",
			""userCode"" : ""002",
			""userName"" : ""李四""
		} ]}" 
	};
}

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

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

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

using Newtonsoft.Json;
 
[System.Web.Http.HttpGet]
public JObject GetTags(string account)
{
    JObject jobj = new JObject();
 
	//ViewTag是自定义类
    IList<ViewTag> list = customViewService.GetTags(ProjectId,account);
    jobj.Add("total", (JToken)list.Count());
    jobj.Add("rows", JArray.FromObject(list));
 
    return jobj;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据压缩导论(第4版)

数据压缩导论(第4版)

[美] Khalid Sayood / 贾洪峰 / 人民邮电出版社 / 2014-1 / 129.00

数据压缩已经成为信息革命的一门支撑技术,这场革命已经改变了我们的生活,而在此过程中,数据压缩也变得几乎无处不在。从MP3播放器到智能手机,再到数字电视和数字电影,数据压缩几乎成了所有信息技术的必备要素。 近年来,以大数据为标志的互联网技术高歌猛进。数据规模大、产生速度快、来源多样等特性,导致数据存储和处理都前所未有地复杂。《数据压缩导论(第4版)》作为迄今为止数据压缩领域最全面而深入的著作,......一起来看看 《数据压缩导论(第4版)》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具