2013-07-17 15 views
7

È possibile?Come forzare Camelcase con JavaScriptSerializer?

Ho una classe come questa:

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; } 
} 

Ma vorrei serializzare come questo { "name":"foo", "anotherField":"bar" } invece di { "Name":"foo", "AnotherField":"bar" }.

Questo è il modo che uso:

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

dovrebbe aiutare: http://stackoverflow.com/questions/4671044/deserializing-json-responses-which-contain-attributes-that-conflict-with -parola chiave. E sì, significa ovviamente che devi lasciare il serializzatore integrato. –

+0

Se si utilizza JSON.NET ha un 'CamelCasePropertyNamesContractResolver' vedere http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization per un esempio con Web.Api –

+0

Questo può essere un duplicato di: http://stackoverflow.com/questions/15040838/mvc-jsonresult-camelcase-serialization –

risposta

-4

è possibile utilizzare un caso cammello resolver da Newtonsoft.Json.Serialization; Su di te Global.asax si registra, a richiesta avviare

using Newtonsoft.Json.Serialization; 

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

Questo codice non si applica a JavaScriptSerializer, sfortunatamente. –

Problemi correlati