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 ...
随机推荐
- MySql的基本架构续
[数据拆分后引入的问题] 数据水平拆分引入的问题主要是只能通过sharding key来读写操作,例如以userid为sharding key的切分例子,读userid的详细信息时,一定需要先知道us ...
- Android笔记:RelativeLayout
RelativeLayout 又称作相对布局,也是一种非常常用的布局.和 LinearLayout 的排列规则不同,RelativeLayout 显得更加随意一些,它可以通过相对定位的方式让控件出现在 ...
- java的字典排序
按照教程上的代码还是报错 应该是字典排序的问题,不能是Arrays.sort()
- Water Tree(树链剖分+dfs时间戳)
Water Tree http://codeforces.com/problemset/problem/343/D time limit per test 4 seconds memory limit ...
- virtualbox Linux与Windows共享文件
安装virtualbox增强功能 在Windows下新建文件用于共享,点设置->共享文件夹->添加共享文件,制定路径和名称(名称用于Linux中挂载使用)(选择固定分配) 在Linux中m ...
- git pull和git fetch命令
git pull和git fetch命令 git pull git pull命令的作用是取回远程主机某个分支的更新,在与本地指定分支合并,格式如下: $ git pull <远程主机名>& ...
- html菜单和课程表
菜单: <html> <head> <meta charset="utf-8"> <title>菜单练习</title> ...
- Scrum 团队成立 -- 软件工程
团队项目选题 : 金融工具:复利计算与投资记录项目继续升级,开发定位明确.功能专注的工具类软件 团队队员 : 蔡舜 , 林宇粲 , 王昕明 , 卢晓洵 团队目标 : 不断完善 团队口号 : 永不 ...
- jstl标签详解 (转载)
JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...
- 201621123008 《Java程序设计》第四周学习总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键字:继承,多态. 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多的字. 2. 书面作业 1. ...