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"
]
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…