【发布时间】:2014-12-09 16:58:26
【问题描述】:
我的 json 格式有问题。我希望我的 json 结果是驼峰式的。我使用以下代码来实现这一点(ASP.NET WebAPI Tip #3: camelCasing JSON):
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var formatters = config.Formatters;
var jsonFormatter = formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.Formatting = Newtonsoft.Json.Formatting.Indented;
settings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
}
}
Register 方法是从Global.asax 调用的:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
// Load all modules
ESP.Framework.Web.ModuleManager.Singleton.LoadModules(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath);
// Virtual Path Provider
// // System.Web.Hosting.HostingEnvironment.RegisterVirtualPathProvider(new Provider.ESPPathProvider());
// Register Controller-Factory
//ControllerBuilder.Current.SetControllerFactory(typeof(ESP.Web.Controllers.DynamicActionControllerFactory));
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
}
但是当我在浏览器中调用以下方法时:
[HttpGet]
public JsonResult GetUser()
{
var user = ESP.Framework.Web.Security.UserManager.GetAllUser();
return Json(user, JsonRequestBehavior.AllowGet);
}
结果不是驼峰式(方法所在的程序集是动态加载的)。
也许有人有解决方案。谢谢!
【问题讨论】:
-
我不确定您更改的设置是否会影响 MVC,它们适用于 Web API。您是否尝试过创建 Web API 控制器?
-
您的其他设置是否受到尊重,例如
settings.Formatting = Newtonsoft.Json.Formatting.Indented是否有效? -
不行,settings.Formatting = Newtonsoft.Json.Formatting.Indented 也不起作用。
标签: c# asp.net-mvc json camelcasing