如何删除json字符串中的反斜杠和双引号

时间:2015-10-13 11:28:49

标签: c# json serialization asp.net-web-api

我正在尝试将字符串传递给json对象,并且它可以正常工作。然而,在json中有一些反斜杠和双引号!我该如何删除它们?

我正在使用c#Web API。这是我的代码。

public string jsonvalues()
{
    var x = new
    {  
      status = "Success"
    };
    var javaScriptSerializer = new
    System.Web.Script.Serialization.JavaScriptSerializer();
    var jsonString = javaScriptSerializer.Serialize(x);
    return jsonString;
}  

当我在控制器中返回此函数时,我得到的结果如下

  

" {\"状态\":\"成功\"}"

1 个答案:

答案 0 :(得分:5)

这种情况正在发生,因为您手动将数据序列化为JSON(在代码中),当您从控制器返回数据时,框架再次序列化相同的东西,这已经是一个json格式的字符串!

要解决此问题,只需不要将其序列化,让MVC/Web API框架完成其工作并从您的对象中创建JSON

如果您正在使用Web API像这样使用

[HttpGet]
public object jsonvalues()
{
    var x = new
    {
        status = "Success"
    };
    return x;
}

如果您使用MVC,请像这样使用

[HttpGet]
public ActionResult jsonvalues()
{
    var x = new
    {
        status = "Success"
    };
    return Json(x, JsonRequestBehavior.AllowGet);
}

两者都将返回

  

{status:“成功”}