Tengo una acción devolviendo un json simple. Para fines de demostración, pegaré el código de muestra. clase simple para serializar:comillas dobles en json devuelto
public class Employee
{
public string FullName { get; set; }
}
La acción que devuelve el JSON:
public JsonResult Test()
{
var employee = new Employee { FullName = "Homer Simpson" };
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(employee);
return Json(json, JsonRequestBehavior.AllowGet);
}
Aquí es donde estoy confundido. Cuando llamo a esta acción desde el navegador y miro la respuesta con la violinista, este es el resultado:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Mon, 15 Aug 2011 20:52:34 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 3.0
Cache-Control: private
Content-Type: application/json; charset=utf-8
Content-Length: 34
Connection: Close
"{\"FullName\":\"Homer Simpson\"}"
La pestaña "JSON" en Fiddler lee "La respuesta seleccionada no contiene texto JSON válida". La respuesta válida debe ser como este:
"{"FullName":"Homer Simpson"}"
¿Qué está pasando aquí? Gracias
' "{\" Nombre completo \ ": \" Homer Simpson \ "}" 'es la versión escapado del objeto JSON de cuerda. Cuando se analiza, el motor la convertirá en '{" FullName ":" Home Simpson "}'. Debido a que está rodeado de comillas fuera de las llaves, las comillas internas deben ser escapadas o tendrá una cadena inválida. –
Entiendo eso, pero ¿no debería fiddler analizar la cadena devuelta en el objeto JSON y mostrar el JSON en la pestaña JSON? –