我在我的asp net mvc应用程序
中的Application_Start方法中设置了JsConfig protected void Application_Start()
{
JsConfig.DateHandler = JsonDateHandler.ISO8601;
JsConfig.EmitCamelCaseNames = true;
}
然后我想在我的服务方法中使用扩展方法ToJson,例如
public string testMethod{
//here code
var obj = new TestObj{
Id = 1,
CurrentDate = DateTime.Now
}
return obj.ToJson();
}
然后我查看结果,我看到json导致PascalCase和日期格式为Date(123455678990)
,但在我在config中设置使用camelCase和utc格式日期
但我在我的服务方法中设置了配置,例如:
public string testMethod{
//here code
JsConfig.DateHandler = JsonDateHandler.ISO8601;
JsConfig.EmitCamelCaseNames = true;
var obj = new TestObj{
Id = 1,
CurrentDate = DateTime.Now
}
return obj.ToJson();
}
我得到了我想要的结果
是否可以在启动我的应用程序时设置JsConfig属性?
答案 0 :(得分:3)
在Global.asax中设置Application_Start()
处的JsConfig属性会按预期为JSON序列化首选项设置全局配置。
我在测试MVC项目in this commit中添加了一个示例,它正在按预期工作,在Application_Start()
中设置静态JsConfig配置:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
JsConfig.Init(new Config {
DateHandler = DateHandler.ISO8601,
TextCase = TextCase.CamelCase
});
//...
}
}
在控制器中序列化JSON:
return new HomeViewModel
{
Name = name,
Json = new TestObj { Id = 1, CurrentDate = DateTime.Now }.ToJson()
};
按预期序列化:
{"id":1,"currentDate":"2016-06-29T11:56:45.7517089-04:00"}