2013-07-17 2 views
7

Czy to możliwe?Jak zmusić camelcase za pomocą JavaScriptSerializer?

Mam klasy jak poniżej:

public class ABC 
{ 
    [Key] 
    [ScriptIgnore] 
    public int Id { get; set; } 

    public string Name { get; set; } 

    public string AnotherField { get; set; } 

    [ScriptIgnore] 
    public virtual User User { get; set; } 
} 

Ale chciałbym serializacji jak ten { "name":"foo", "anotherField":"bar" } zamiast { "Name":"foo", "AnotherField":"bar" }.

ten sposób używać:

return Request.CreateResponse(HttpStatusCode.OK, new JavaScriptSerializer().Serialize(obj)); 
+1

powinno pomóc: http://stackoverflow.com/questions/4671044/deserializing-json-responses-which-contain-attributes-that-conflict-with -słowo. I tak, to oczywiście oznacza, że ​​musisz opuścić wbudowany serializator. –

+0

Jeśli korzystasz z JSON.NET, to masz 'CamelCasePropertyNamesContractResolver' patrz http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization na przykład z Web.Api –

+0

Może to być duplikat: http://stackoverflow.com/questions/15040838/mvc-jsonresult-camelcase-serialization –

Odpowiedz

-4

Można używać liter wielbłąd resolverowi z Newtonsoft.Json.Serialization; na ciebie global.asax zarejestrować go na wniosek rozpocząć

using Newtonsoft.Json.Serialization; 

protected void Application_Start() 
{ 
    config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 
} 
+1

Ten kod nie dotyczy niestety JavaScriptSerializer. –