在ASP.NET MVC中从Json()强制使用小写属性名称
鉴于以下课程,
public class Result{
public bool Success { get; set; }
public string Message { get; set; }
}
我将在这样的Controller动作中返回其中之一,
return Json(new Result() { Success = true, Message = "test"})
但是我的客户端框架期望这些属性是小写的成功和信息。不必实际上具有小写的属性名称,是否可以通过正常的Json函数调用来实现这一想法?
回答:
实现此目的的方法是在JsonResult
此处实现一个自定义:
创建自定义ValueType并使用自定义JsonResult进行序列化
(原始链接
无效
) 。
并使用替代的序列化程序,例如JSON.NET,它支持这种行为,
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()
}
);
结果是
{ "name": "Widget",
"expiryDate": "\/Date(1292868060000)\/",
"price": 9.99,
"sizes": [
"Small",
"Medium",
"Large"
]
}
以上是 在ASP.NET MVC中从Json()强制使用小写属性名称 的全部内容, 来源链接: utcz.com/qa/411200.html