2013-07-17 9 views
7

可能でしょうか?JavaScriptSerializerでラクダを強制するには?

私はこのようなクラスがあります。

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

をしかし、私はこの{ "name":"foo", "anotherField":"bar" }の代わり { "Name":"foo", "AnotherField":"bar" }のようにシリアライズしたいと思います。

これは私が使用する方法である:

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

役立つはずです:http://stackoverflow.com/questions/4671044/deserializing-json-responses-which-contain-attributes-that-c​​onflict-with -キーワード。もちろん、組み込みのシリアライザを離れなければならないことは明らかです。 –

+0

JSON.NETを使用している場合は、「CamelCasePropertyNamesContractResolver」があります。http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serializationを参照してください。 Web.Api –

+0

これは重複している可能性があります:http://stackoverflow.com/questions/15040838/mvc-jsonresult-camelcase-serialization –

答えて

-4

あなたはNewtonsoft.Json.Serializationからキャメルケースリゾルバを使用することができます。あなたに は、あなたが開始するアプリケーションにそれを登録Global.asaxの

using Newtonsoft.Json.Serialization; 

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

このコードは、残念なことにJavaScriptSerializerには当てはまりません。 –

関連する問題