Mi problema es que deseo devolver datos JSON camelCased (a diferencia del PascalCase estándar) a través de ActionResult s de los métodos del controlador ASP.NET MVC, serializados por JSON.NET .
Como ejemplo, considere la siguiente clase de C #:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
De forma predeterminada, al devolver una instancia de esta clase desde un controlador MVC como JSON, se serializará de la siguiente manera:
{
"FirstName": "Joe",
"LastName": "Public"
}
Me gustaría que se serialice (por JSON.NET) como:
{
"firstName": "Joe",
"lastName": "Public"
}
¿Cómo hago esto?
asp.net-mvc
json
json.net
camelcasing
aknuds1
fuente
fuente
Controller
método, probablemente debería usar unApiController
, en cuyo caso esta respuesta funciona muy bien.application/json
, notext/plain
.Encontré una excelente solución a este problema en el blog de Mats Karlsson . La solución es escribir una subclase de ActionResult que serialice los datos a través de JSON.NET, configurando este último para que siga la convención camelCase:
Luego use esta clase de la siguiente manera en su método de controlador MVC:
fuente
Para WebAPI , consulte este enlace: http://odetocode.com/blogs/scott/archive/2013/03/25/asp-net-webapi-tip-3-camelcasing-json.aspx
Básicamente, agregue este código a su
Application_Start
:fuente
Creo que esta es la respuesta simple que estás buscando. Es del blog de Shawn Wildermuth :
fuente
Una alternativa al filtro personalizado es crear un método de extensión para serializar cualquier objeto a JSON.
Luego llámelo cuando regrese de la acción del controlador.
fuente
Más simple es mejor IMO!
¿Por qué no haces esto?
El controlador de clase base simple
fuente
En ASP.NET Core MVC.
fuente
A continuación se muestra un método de acción que devuelve una cadena json (cameCase) al serializar una matriz de objetos.
Tenga en cuenta que la instancia de JsonSerializerSettings pasó como segundo parámetro. Eso es lo que hace que el camelCase suceda.
fuente
Me gustó esto:
este es un método de extensión simple en el núcleo MVC, le dará la capacidad ToJson () a cada objeto en su proyecto, en mi opinión, en un proyecto MVC la mayoría de los objetos deberían tener la capacidad de convertirse en json, por supuesto, depende :)
fuente
Debe establecer la configuración en el archivo 'Startup.cs'
También debe definirlo en los valores predeterminados de JsonConvert, esto es si luego desea usar directamente la biblioteca para serializar un objeto.
fuente
Si está devolviendo ActionResult en .net core web api, o el resultado de IHttpAction, entonces puede envolver su modelo en un método Ok () que coincidirá con el caso en su front-end y serializarlo para usted. No es necesario usar JsonConvert. :)
fuente