本文实例讲述了.Net基于MVC4 Web Api输出Json格式的方法,分享给大家供大家参考。具体实现方法如下:

1、Global 中增加json输出

GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("json", "true", "application/json"));

protected void Application_Start()

{

AreaRegistration.RegisterAllAreas();

//添加json 解析  使用方法 http://xxx/api/action?json=true

GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("json", "true", "application/json"));

WebApiConfig.Register(GlobalConfiguration.Configuration);

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

RouteConfig.RegisterRoutes(RouteTable.Routes);

BundleConfig.RegisterBundles(BundleTable.Bundles);

}

2、Global 中删除xml解析

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

protected void Application_Start()

{

AreaRegistration.RegisterAllAreas();

WebApiConfig.Register(GlobalConfiguration.Configuration);

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

RouteConfig.RegisterRoutes(RouteTable.Routes);

BundleConfig.RegisterBundles(BundleTable.Bundles);

//删除xml的解析 当返回值是string 时 直接返回string不是json对象

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

}

3、指定返回格式

新建方法 需要程序集:

System.Web.Extensions

public static HttpResponseMessage ToJson(Object obj)

{

String str;

if (obj is String || obj is Char)

{

str = obj.ToString();

}

else

{

var serializer = new JavaScriptSerializer();

str = serializer.Serialize(obj);

}

var result = new HttpResponseMessage { Content = new StringContent(str, Encoding.GetEncoding("UTF-8"), "application/json") };

return result;

}

调用户方法转换为json对象输出

public HttpResponseMessage GetString(string name)

{

return ToJson(name);

}

4、重写默认实现类 所有输出将被重新解析成 json

新建JsonContentNegotiator 类

public class JsonContentNegotiator : IContentNegotiator

{

private readonly JsonMediaTypeFormatter _jsonFormatter;

public JsonContentNegotiator(JsonMediaTypeFormatter formatter)

{

_jsonFormatter = formatter;

}

public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable formatters)

{

var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));

return result;

}

}

WebApiConfig中使用重写

public static void Register(HttpConfiguration config)

{

config.Routes.MapHttpRoute(

name: "DefaultApi",

routeTemplate: "api/{controller}/{id}",

defaults: new { id = RouteParameter.Optional }

);

var jsonFormatter = new JsonMediaTypeFormatter();

config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));

// 取消注释下面的代码行可对具有 IQueryable 或 IQueryable 返回类型的操作启用查询支持。

// 若要避免处理意外查询或恶意查询,请使用 QueryableAttribute 上的验证设置来验证传入查询。

// 有关详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=279712。

//config.EnableQuerySupport();

// 若要在应用程序中禁用跟踪,请注释掉或删除以下代码行

// 有关详细信息,请参阅: http://www.asp.net/web-api

config.EnableSystemDiagnosticsTracing();

}

希望本文所述对大家的asp.net程序设计有所帮助。

webapi输出炜json_.Net基于MVC4 Web Api输出Json格式实例相关推荐

  1. [Web API] 如何让 Web API 统一回传格式以及例外处理[转]

    [Web API] 如何让 Web API 统一回传格式以及例外处理 前言 当我们在开发 Web API 时,一般的情况下每个 API 回传的数据型态或格式都不尽相同,如果你的项目从头到尾都是由你一个 ...

  2. MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式

    MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式 2015-01-18 00:11 https://www.muhanxue.com/essa ...

  3. .net mvc web api 返回 json 内容,过滤值为null的属性

    原文:http://blog.csdn.net/xxj_jing/article/details/49508557 版权声明:本文为博主原创文章,未经博主允许不得转载..net mvc web api ...

  4. 学习日志day45(2021-09-09)(1、有道翻译API使用json格式数据 2、JSONP 3、Ajax提交form表单 4、Web Uploader)

    学习内容:学习JavaWeb(Day45) 1.有道翻译API使用json格式数据 2.JSONP 3.Ajax提交form表单 4.Web Uploader 1.有道翻译API使用json格式数据 ...

  5. 在Asp.net应用程序中构建基于WCF Web.Api的服务

    WCF Web API Preview 5 发布了,你可以官方网站下载或通过Nuget安装它. 下面让我们在Asp.net applicatoin中来实现一个非常简单的web api service. ...

  6. core webapi缩略图_在ASP.NET Core Web API 项目里无法访问(wwwroot)下的文件

    新建 ASP.NET Core Web API 项目 -- RESTFul 风格 Hello World! 一.创建一个空项目 请查看 新建 .NET Core 项目 -- Hello World!  ...

  7. java gzip压缩json_将PHP程序中返回的JSON格式数据用gzip压缩输出的方法

    1.使用压缩与不使用压缩的HTTP输出比较 2.开启gzip 利用apache mod_deflate module 开启gzip 开启方法: sudo a2enmod deflate sudo /e ...

  8. asp.net MVC 5 及 Web API修改日期格式

    在Asp.net MVC 5 (目前我用的是5这个版本) 中. Web API 和MVC 是两个独立的体系. 很多时候为了解决一个问题查来查去, 方案很多就是不管用. 后来才恍然大悟. 原来是两个体系 ...

  9. 浅析web api的json参数校验

    前言 以前api接口大家用得比较多的是表单方式传值,现在越来越流行使用json参数类型. 正文 下面从php.golang两个语言在json的使用上做一些说明. php的处理json的两个方法名叫: ...

最新文章

  1. MySQL 数据库mysqlbinlog使用问题:unknown variable ‘default-character-set=utf8‘.解决方法
  2. python 中的接口_python中接口
  3. MySQL卸干净与下载安装(2020最新版+亲测踩坑可用)
  4. 解析 Page.MaintainScrollPositionOnPostBack 属性
  5. Leetcode--283. 移动零
  6. Net操作Excel(终极方法NPOI)
  7. 复习-网络编程之IP和端口号
  8. 模拟电子技术不挂科学习笔记3(放大电路的分析方法)
  9. python二进制文件解析_python – 解析二进制文件的正则表达式?
  10. 树莓派搭建物联网服务器
  11. 坚果pro官方固件_锤子坚果pro 官方3.6.0稳定版 精简流畅 Magisk授权-刷机之家
  12. 使用backdrop-filter实现毛玻璃效果
  13. IT外包:中国跃跃欲试,准备一鸣惊人——2012国际外包峰会所见所感(下)
  14. Excel条形图也可以变身高大上
  15. 现如今社群乱象,社群玩法正解
  16. 通信算法之139: 软件无线电位同步1
  17. 硬核 | C++ 基础大全
  18. Kubernetes新近kubectl及CNI漏洞修复,Rancher 2.2.1发布
  19. Java基础综合练习案例
  20. 《信息安全概论》02——访问控制

热门文章

  1. 一步一步做搜索(一)
  2. NSIS:判断并安装.NET Framework 4 的例子
  3. AJAX -- 目录
  4. JavaScript Document对象DOM
  5. JS-节点增删改-document-HTML DOM-事件
  6. Opencv ORC——文字定位与切割
  7. Async/Await(异步处理)
  8. 7-9 根据后序和中序遍历输出先序遍历 (10 分)
  9. 鸿蒙WLAN模组联网+解决在Visual Studio Code不能更改Linux文件的问题
  10. datagridview如何将sqlite实现多表查询_服气!月薪3W的Exceler,居然是这样合并多表数据的...