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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta