Force lowercase property names from Json() in ASP.NET MVC

前端 未结 5 1104
孤独总比滥情好
孤独总比滥情好 2020-11-29 18:43

Given the following class,

public class Result
{      
    public bool Success { get; set; }

    public string Message { get; set; }
}

I a

5条回答
  •  伪装坚强ぢ
    2020-11-29 19:32

    The way to achieve this is to implement a custom JsonResult like here: Creating a custom ValueType and Serialising with a custom JsonResult (original link dead).

    And use an alternative serialiser such as JSON.NET, which supports this sort of behaviour, e.g.:

    Product product = new Product
    {
      ExpiryDate = new DateTime(2010, 12, 20, 18, 1, 0, DateTimeKind.Utc),
      Name = "Widget",
      Price = 9.99m,
      Sizes = new[] {"Small", "Medium", "Large"}
    };
    
    string json = 
      JsonConvert.SerializeObject(
        product,
        Formatting.Indented,
        new JsonSerializerSettings 
        { 
          ContractResolver = new CamelCasePropertyNamesContractResolver() 
        }
    );
    

    Results in

    {
      "name": "Widget",
      "expiryDate": "\/Date(1292868060000)\/",
      "price": 9.99,
      "sizes": [
        "Small",
        "Medium",
        "Large"
      ]
    }
    

提交回复
热议问题