ASP.NET WEB API 返回JSON 出现2个双引号问题
前言
在使用ASP.NET WEB API时,我想在某个方法返回JSON格式的数据,于是首先想到的就是手动构建JSON字符串,如:"{\"result\":\"true\"}" 虽然这种方式不可取但是基于测试的目的,如果真实项目用拼接JSON这是很容易出现问题,所以建议采用JSON.NET来构造JSON对象。
准备工作
因为ASP.NET WEB API 会根据你请求方式返回相应的数据格式,假设手动在浏览器中请求,在FF,Chrome中他会返回XML格式数据,而在IE中则是JSON格式。如果想要ASP.NET WEB API只返回JSON,则可以在项目的Global.asax->Application_Start方法中添加如下代码:
方法一:
HttpConfiguration config = GlobalConfiguration.Configuration;   
config.Formatters.Remove(config.Formatters.XmlFormatter);
方法二:
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
当然还有其它方法GG下吧。
解决方案
其实在ASP.NET WEB API中采用返回string来构建JSON是不可取的,如果你直接 return "{\"result\":\"true\"}"; 那么在浏览器中返回的结果就是:"{\"result\":\"true\"}",如果拿这个格式去构建JSON就会报错,如我在ANDROID中构造JSON就出错了:“org.json.JSONException: Value {"result":"true"} of type java.lang.String cannot be converted to JSONObject”
要让ASP.NET WEB API返回正确的格式如下图所示:

需要返回HttpResponseMessage 对象,具体代码如下:
[HttpGet]
public HttpResponseMessage CheckPassword(string sysUserName, string password)
{
var resp = new HttpResponseMessage { Content = new StringContent("{\"result\":\"true\"}", System.Text.Encoding.UTF8, "application/json") }; return resp;
}
参考:
http://forums.asp.net/t/1844684.aspx/1
ASP.NET WEB API 返回JSON 出现2个双引号问题的更多相关文章
- Asp.net Web API 返回Json对象的两种方式
		
这两种方式都是以HttpResponseMessage的形式返回, 方式一:以字符串的形式 var content = new StringContent("{\"FileName ...
 - .net mvc web api 返回 json 内容,过滤值为null的属性
		
原文:http://blog.csdn.net/xxj_jing/article/details/49508557 版权声明:本文为博主原创文章,未经博主允许不得转载. .net mvc web ap ...
 - MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式。
		
原文链接:https://www.muhanxue.com/essays/2015/01/8623699.html MVC web api 返回JSON的几种方式 1.在WebApiConfig的Re ...
 - ASP.NET Web Api返回对象类型为JSON还是XML
		
在Umbraco平台上开发过程中,我用WebApi返回JSON result给前端 前端使用React调用这个web api来获取JSON result 我写的web api方法是返回JSON 类型的 ...
 - Web API返回JSON数据
		
对Web API新手来说,不要忽略了ApiController 在web API中,方法的返回值如果是实体的话实际上是自动返回JSON数据的例如: 他的返回值就是这样的: { "Conten ...
 - web Api 返回json 的两种方式
		
web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...
 - .Net Web Api返回Json数据中原对象变量名大小写问题
		
这两天在工作中使用SignalR的WebSocket做数据实时传递的功能开发,在后端主动向前端广播数据以Json传递时,前端获取的Json中对应类的变量名首字母默认传递的是大写.而前端一直获取到的后台 ...
 - Web API 返回json文件的2中不用方式
		
//方法一:直接返回序列化后的json文件 public static HttpResponseMessage ConvertToJson(this Object obj) { String str= ...
 - .net mvc web api 返回 json 内容时过滤值为null的属性
		
1.响应内容(过滤前) {"msg":"初始化成功!","code":"","success":tr ...
 
随机推荐
- Java获取资源文件
			
比如我们有以下目录 |--project |--src |--javaapplication |--Test.java |--file1.txt |--file2.txt |--build |--ja ...
 - iOS 静态库的封装
			
参考网址:http://www.jianshu.com/p/b754709135fb http://www.jianshu.com/p/443a5b8f3894 注意:封装静态库时要注意的地方: ...
 - MySQL中执行sql语句错误 Error Code: 1093. You can't specify target table 'car' for update in FROM clause
			
MySQL中执行sql语句错误 Error Code: 1093. You can't specify target table 'car' for update in FROM clause 201 ...
 - 165. Compare Version Numbers比较版本号的大小
			
[抄题]: Compare two version numbers version1 and version2.If version1 > version2 return 1; if versi ...
 - ios 进入后台 一段时间在进入前台 动画消失
			
http://www.cnblogs.com/YouXianMing/p/3670846.html
 - 13-前端不通路径同一个请求访问同一个页面时,有时样式没有加载出来(jss,image,css)
			
通过如下方式访问同一个网站时,下面一个可以加载样式,而下面一个加载的页面却没有样式,思考良久没有想通,当时也忘记了用浏览器看下 css,js,image的请求路径,其实在前端页面里面我直接: 这样引 ...
 - DB2 SQL1477N问题
			
ERROR [55019] [IBM][DB2/NT] SQL1477N For table "DB_YHJX.YHJX_FHDKFHZ" an object "521 ...
 - 建表Table
			
Sstudent表 学 号 Sno 姓 名 Sname 性 别 Ssex 年 龄 Sage 所 在 系 Sdept 200215121 ...
 - code1002 搭桥
			
最小生成树 每读入一个城市,把他与之前的所有城市做一次link() link的内容: 1.如果两个城市直接相连,合并他们的集合(并查集)2.如果两个城市可以搭桥,添加一条边来连接.如果不可以搭桥,什么 ...
 - qt基本类
			
多firstpage secondpage thirdpage fouthpage 实现 多页面 xml解析 实现 按钮 和 slot实现 mysql数据库访问实现