Json字符串在web-api中被转义



我们将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

相关内容

  • 没有找到相关文章

最新更新