Devuelva json "sin formato" en la API web ASP.NET Core 2.0
La forma estándar de AFAIK de devolver datos en ASP.NET Core Web Api es mediante el uso deIActionResult
y proporcionando p. unOkObject
resultado. Esto funciona bien con los objetos, pero ¿qué pasa si he obtenido una cadena JSON de alguna manera, y solo quiero devolver ese JSON a la persona que llama?
p.ej.
public IActionResult GetSomeJSON()
{
return Ok("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }");
}
Lo que hace ASP.NET Core aquí es tomar la cadena JSON y volver a envolverla en JSON (por ejemplo, se escapa de JSON)
Devolver texto sin formato con[Produces("text/plain")]
funciona proporcionando el contenido "RAW", pero también establece el tipo de contenido de la respuesta a PLAIN en lugar de JSON. Usamos[Produces("application/json")]
en nuestros controladores.
¿Cómo puedo devolver el JSON que tengo como un tipo de contenido JSON normal sin que se escape?
Nota: No importa cómo se adquirió la cadena JSON, podría ser de un servicio de terceros, o hay algunas necesidades especiales de serialización, por lo que queremos hacer una serialización personalizada en lugar de usar el serializador JSON.NET predeterminado.