Renvoyer le JSON camelCased à partir de l'API Web
Je suis en train de retourner camelcase JSON à partir d'un ASP.Net Web API 2 contrôleur. J'ai créé une nouvelle application web avec juste la ASP.Net MVC et Web API bits. J'ai détourné la ValuesController comme suit:
public class ValuesController : ApiController
{
public class Thing
{
public int Id { get; set; }
public string FirstName { get; set; }
public string ISBN { get; set; }
public DateTime ReleaseDate { get; set; }
public string[] Tags { get; set; }
}
//GET api/values
public IHttpActionResult Get()
{
var thing = new Thing
{
Id = 123,
FirstName = "Brian",
ISBN = "ABC213",
ReleaseDate = DateTime.Now,
Tags = new string[] { "A", "B", "C", "D"}
};
return Json(thing);
}
}
L'exécution de ce sous IE, j'obtiens les résultats suivants:
{"Id":123,"FirstName":"Brian","ISBN":"ABC213","ReleaseDate":"2014-10-20T16:26:33.6810554-04:00","Tags":["A","B","C","D"]}
Suivantes K. Scott Allen post sur le sujet, j'ai ajouté ce qui suit à la méthode Register dans le WebApiConfig.cs fichier:
public static void Register(HttpConfiguration config)
{
//Web API configuration and services
var formatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.Formatting = Formatting.Indented;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
//Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
Cependant, j'obtiens toujours la même, capitilization dans mes résultats. Est-il quelque chose que je suis absent? J'ai essayé quelques autres approches, mais rien ne fonctionne encore.
source d'informationauteur beaudetious
Vous devez vous connecter pour publier un commentaire.
Dans votre WebApiConfig.cs assurez-vous d'ajouter ces deux lignes
assurez-vous que vous avez installé Newtonsoft bibliothèque.
Espère que ça aide.
Ressemble le principal problème est que j'ai été en utilisant le JsonResult raccourci Json() action résultat de la méthode:
Apparemment, il avait le plein contrôle de mise en forme les résultats. Si je commutateur à retour HttpResponseMessage alors qu'il fonctionne comme prévu:
J'ai fini en utilisant le bloc de code dans le WebApiConfig fichier comme Omar.Alani suggéré (opposé à beaucoup plus de code que j'avais dans mon OP). Mais le vrai coupable était le JsonResult méthode d'action. J'espère que cela aide quelqu'un d'autre.
Vous devez utiliser
OK()
au lieu deJson()
dans vos méthodes d'action.J'ai été en utilisant Owin et DI (AutoFac dans mon cas), de sorte que jette une autre clé dans les œuvres. Mon Démarrage.cs contient:
Ensuite dans mon WebApiConfig.cs j'ai:
Dans le Registre de la méthode de WebApiConfig, ajouter cette
config.Des formateurs.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
Complète du Code de WebApiConfig:
Assurez-vous d'avoir installé la dernière version de Json.Net/Newtonsoft.Json Installé et votre Action API Méthode renvoie les données de la manière suivante:
Essayer aussi.