在默认情况下,当我们新建一个webapi项目,会自动返回XML格式的数据,如果我们想返回JSON的数据,可以设置下面的三种方法。

1. 不用改配置文件,在Controller的方法中,直接返回HttpResponseMessage

publicHttpResponseMessage ReturnJson()

{//初始化测试对象

TestJsonObj t = newTestJsonObj();

t.Name= "alun";

t.Address= "GZ";//OBJ转化成JSON

string json =JsonConvert.SerializeObject(t);//返回json数

return newHttpResponseMessage()

{

Content= new StringContent(json, Encoding.UTF8, "application/json"),

};

}

TestJsonObj是我们测试的类

上面的方法比较繁杂,但是灵活。每次都要把对象转换成JSON,效率上有点慢。

2. 在全局设置中,把所有返回的格式清除,设置JSON。所有的返回的xml格式都会被清除

在WebApiConfig类的Register方法中,我们添加下面代码:

config.Formatters.Clear();

config.Formatters.Add(new JsonMediaTypeFormatter());

这种方式虽然可以实现功能,但是所有的conent negotiation还是会发生,这就会产生以下额外的开销了。因为,你已经知道要返回的结果了,也只想返回Json,其他的content negotiation都不需要了。

3. 在全局设置中,使用自定义的只返回Json Result。只让api接口中替换xml,返回json

在WebApiConfig类的Register方法中,我们添加下面代码:

var jsonFormatter = newJsonMediaTypeFormatter();

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

使用自定义的只返回Json Result的content negotiation代替Web Api中默认的content negotiation。

本文推荐方法3,因为简单好用。

注意:

如果使用了swagger:

当使用方法1,在swagger页面上,返回的obj的说明文档不会显示出来

当使用方法3,swagger说明文档会一直处于fetching resource的状态。

所以我们在测试的时候使用方法2,正式环境的时候使用方法3,做一个判断就可以了,如下:

//设置返回json

if(CPublicAttribute.TestEnviroment)

{

config.Formatters.Clear();

config.Formatters.Add(newJsonMediaTypeFormatter());

}else{var jsonFormatter = newJsonMediaTypeFormatter();

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

webapi输出炜json_C# WebApi 返回JSON相关推荐

  1. webapi输出炜json_web Api 返回json 的两种方式

    web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...

  2. webapi输出炜json_webapi转化为json格式

    引用命名空间: using System.Web.Script.Serialization; using System.Text; (using system.web.Mvc;) 添加引用: Newt ...

  3. webapi输出炜json_WebApi返回Json格式

    namespaceTestWebApi {public static classWebApiConfig {public static voidRegister(HttpConfiguration c ...

  4. .net core webAPI 使其同时支持返回json或xml

    在.netframwork的mvc框架下创建的webapi默认同时支持json和xml. 但是.net core新建的web API默认只支持返回json,如果想要同时支持XML.需要修改下配置. 在 ...

  5. webapi输出炜json_asp.net web api只返回json数据格式

    asp.net web api默认是同时支持返回xml和json数据格式的.这种机制是因为有web api框架中的SupportedMediaTypes的存在. 具体返回什么样的数据格式,你可以在请求 ...

  6. webapi输出炜json_.Net基于MVC4 Web Api输出Json格式实例

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

  7. C# WebApi 返回JSON类型

    在默认情况下,当我们新建一个webapi项目,会自动返回XML格式的数据,如果我们想返回JSON的数据,可以设置下面的三种方法. 1. 不用改配置文件,在Controller的方法中,直接返回Http ...

  8. ASP.NET Core WebAPI JWT Bearer 认证失败返回自定义数据 Json

    开发环境:ASP.NET Core Web API 目标框架:.NET Core 2.2  权限认证:JWT Bearer    提供者:成长的小猪 Jason Song 应用场景:当前我们给微信小程 ...

  9. webApi前端ajax调用后端返回{“readyState“:0,“status“:0,“statusText“:“error“}解决方案

    webApi前端ajax调用后端返回{"readyState":0,"status":0,"statusText":"error& ...

最新文章

  1. OpenResty搭建高性能服务端
  2. matlab函数算错,函数是这个样子的,我是不懂应该怎么输入,试了好多种情况都是错...
  3. Java智能教育平台源码基于 SpringBoot + Mybatis + Shiro + mysql + redis构建,前后端分离。
  4. 计算机通信逻辑信号电信号,计算机通信原理
  5. 谈谈创业这点事 之 时间窗口
  6. JS: 百度地图与腾讯/高德地图经纬度转换
  7. Android 开发笔记___图像按钮__imageButton
  8. Python | 基础学习(二)函数基础、非数字型变量(列表、元组、字典、字符串)、切片、for循环
  9. 金融量化数据接口API汇总
  10. HMAC_SHA1和SHA1的区别
  11. 爱思国际获戈壁创投数百万美元Pre-A 轮融资,意做菲律宾的分众传媒...
  12. linux下eclipse的使用,linux下使用eclipse
  13. OLE技术专题——第一讲:OLE概述
  14. python函数运行加速
  15. 【苹果推iMessage】软件安装通过ApplseScript节制iMessage客户端
  16. 洛谷P2336 喵星球上的点名
  17. 国标GB28181(EasyGBS)/RTSP/HIKSDK/EHOME协议视频智能分析平台EasyCVR人脸识别智能分析功能拓展
  18. js数据结构- 双向链表
  19. 分享一次光电可控硅的误用
  20. 2019年注册会计师考试全套高清视频课件百度云网盘免费下载方法

热门文章

  1. java中的土味情话,Leslie情话
  2. win10如何添加开机自己启动软件
  3. 【创建者模式】工厂模式
  4. 常用的PCB供电电路,电源芯片,看看有没有你需要的
  5. Magics 23.0如何激活和使用视图工具页的切片预览功能
  6. 网页flash播放和html播放器,【关于Flash网页播放器的定位与浮动的HTML代码】
  7. mysql查询依赖的ID_为什么peewee在mysql select查询中包含'id'列?
  8. 5. 创建视图vw_vp:查询小米Note2的供应商姓名(vname)、供应商地址(vaddress)、邮政编码(vzip),产品价格(pprice)。
  9. copy()及copy.deepcopy()
  10. 开源, 一种全新的创业模式,正在悄然袭来