我们将JSON配置数据存储在数据库中。我需要获取这个JSON数据,并返回它,因为它是,通过asp.net web-api浏览器:
public class ConfigurationController : ApiController
{
public string Get(string configId)
{
// Get json from database
// when i return the fetched json it get's escaped
}
}
i返回的值被转义。我如何简单地返回字符串原样?我真的不想填充一个被序列化为JSON的对象
你可以从ApiController返回一个HttpResponseMessage
,它允许你基本上返回一个字符串值。
。
public HttpResponseMessage Get()
{
return new HttpResponseMessage() {
Content = new StringContent("Hello World", System.Text.Encoding.UTF8, "application/json")
};
}
你要做的就是传递json字符串作为StringContent。
接受的答案略有偏差。正确的版本是:
public HttpResponseMessage Get()
{
return new HttpResponseMessage() {
Content = new StringContent("Hello World", System.Text.Encoding.UTF8, "application/json")
};
}
正确删除转义的是StringContent函数。如果没有application/json媒体类型,像postman这样的工具将无法正确显示结果的"漂亮"版本。
这对我有用:
return Request.CreateResponse( HttpStatusCode.OK, stringContent );
public HttpResponseMessage GetTravelers(string authkey)
{
var json = JsonConvert.SerializeObject(travelList, Global.JsonSettings);
return new HttpResponseMessage()
{
Content = new StringContent(json, System.Text.Encoding.UTF8,
"text/html")
};
是的,它的工作你必须改变方法类型为HttpResponseMessage代替字符串或int类型
你必须将你的查询值序列化成Json