webapi输出炜json_.Net基于MVC4 Web Api输出Json格式实例
本文实例讲述了.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格式实例相关推荐
- [Web API] 如何让 Web API 统一回传格式以及例外处理[转]
[Web API] 如何让 Web API 统一回传格式以及例外处理 前言 当我们在开发 Web API 时,一般的情况下每个 API 回传的数据型态或格式都不尽相同,如果你的项目从头到尾都是由你一个 ...
- MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式
MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式 2015-01-18 00:11 https://www.muhanxue.com/essa ...
- .net mvc web api 返回 json 内容,过滤值为null的属性
原文:http://blog.csdn.net/xxj_jing/article/details/49508557 版权声明:本文为博主原创文章,未经博主允许不得转载..net mvc web api ...
- 学习日志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格式数据 ...
- 在Asp.net应用程序中构建基于WCF Web.Api的服务
WCF Web API Preview 5 发布了,你可以官方网站下载或通过Nuget安装它. 下面让我们在Asp.net applicatoin中来实现一个非常简单的web api service. ...
- core webapi缩略图_在ASP.NET Core Web API 项目里无法访问(wwwroot)下的文件
新建 ASP.NET Core Web API 项目 -- RESTFul 风格 Hello World! 一.创建一个空项目 请查看 新建 .NET Core 项目 -- Hello World! ...
- java gzip压缩json_将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
1.使用压缩与不使用压缩的HTTP输出比较 2.开启gzip 利用apache mod_deflate module 开启gzip 开启方法: sudo a2enmod deflate sudo /e ...
- asp.net MVC 5 及 Web API修改日期格式
在Asp.net MVC 5 (目前我用的是5这个版本) 中. Web API 和MVC 是两个独立的体系. 很多时候为了解决一个问题查来查去, 方案很多就是不管用. 后来才恍然大悟. 原来是两个体系 ...
- 浅析web api的json参数校验
前言 以前api接口大家用得比较多的是表单方式传值,现在越来越流行使用json参数类型. 正文 下面从php.golang两个语言在json的使用上做一些说明. php的处理json的两个方法名叫: ...
最新文章
- MySQL 数据库mysqlbinlog使用问题:unknown variable ‘default-character-set=utf8‘.解决方法
- python 中的接口_python中接口
- MySQL卸干净与下载安装(2020最新版+亲测踩坑可用)
- 解析 Page.MaintainScrollPositionOnPostBack 属性
- Leetcode--283. 移动零
- Net操作Excel(终极方法NPOI)
- 复习-网络编程之IP和端口号
- 模拟电子技术不挂科学习笔记3(放大电路的分析方法)
- python二进制文件解析_python – 解析二进制文件的正则表达式?
- 树莓派搭建物联网服务器
- 坚果pro官方固件_锤子坚果pro 官方3.6.0稳定版 精简流畅 Magisk授权-刷机之家
- 使用backdrop-filter实现毛玻璃效果
- IT外包:中国跃跃欲试,准备一鸣惊人——2012国际外包峰会所见所感(下)
- Excel条形图也可以变身高大上
- 现如今社群乱象,社群玩法正解
- 通信算法之139: 软件无线电位同步1
- 硬核 | C++ 基础大全
- Kubernetes新近kubectl及CNI漏洞修复,Rancher 2.2.1发布
- Java基础综合练习案例
- 《信息安全概论》02——访问控制
热门文章
- 一步一步做搜索(一)
- NSIS:判断并安装.NET Framework 4 的例子
- AJAX -- 目录
- JavaScript Document对象DOM
- JS-节点增删改-document-HTML DOM-事件
- Opencv ORC——文字定位与切割
- Async/Await(异步处理)
- 7-9 根据后序和中序遍历输出先序遍历 (10 分)
- 鸿蒙WLAN模组联网+解决在Visual Studio Code不能更改Linux文件的问题
- datagridview如何将sqlite实现多表查询_服气!月薪3W的Exceler,居然是这样合并多表数据的...