I am trying to pass string to json object, and it works. However there are some backslashes and double quotes in the json! How can I remove them?
I am using c# Web API. This is my code.
public string jsonvalues()
{
var x = new
{
status = "Success"
};
var javaScriptSerializer = new
System.Web.Script.Serialization.JavaScriptSerializer();
var jsonString = javaScriptSerializer.Serialize(x);
return jsonString;
}
When I return this function in controller, I get the result like this
"{\"status\":\"Success\"}"
解决方案
This is happening because you are serializing the data to JSON manually (in code) and when you return the data from controller, the framework serializes the same thing again, which is already a json formatted string!
To solve that, simply do not serialize it, let the MVC/Web API framework do its job and create a JSON out of your object.
If you are using Web API use like this
[HttpGet]
public object jsonvalues()
{
var x = new
{
status = "Success"
};
return x;
}
If you are using MVC, use like this
[HttpGet]
public ActionResult jsonvalues()
{
var x = new
{
status = "Success"
};
return Json(x, JsonRequestBehavior.AllowGet);
}
Both will return
{ status: "Success" }