首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OData JSON camelCase

OData JSON camelCase
EN

Stack Overflow用户
提问于 2014-07-23 19:40:56
回答 2查看 6K关注 0票数 14

我想对OData JSON响应使用CamelCasePropertyNamesContractResolver。我如何才能做到这一点。使用下面的代码片段,只考虑webapi调用。

问候

WebApiConfig.cs

代码语言:javascript
复制
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // New code:
        ODataModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<Configuration>("Configurations");
        config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: "odata",
            model: builder.GetEdmModel());

        config.Routes.MapHttpRoute(
            name: "API Default",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        config.Formatters.Remove(config.Formatters.XmlFormatter);
    }
}

Global.asax.cs

代码语言:javascript
复制
public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();


        var config = GlobalConfiguration.Configuration;
        var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
        config.Formatters.JsonFormatter.SerializerSettings = settings;

        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        GlobalConfiguration.Configure(WebApiConfig.Register);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
}
EN

回答 2

Stack Overflow用户

发布于 2014-11-10 01:33:22

您可以使用EnableLowerCamelCase扩展方法:

代码语言:javascript
复制
using System.Web.OData.Builder;
using System.Web.OData.Extensions;

var builder = new ODataConventionModelBuilder();
builder.EnableLowerCamelCase();

另请参阅:http://msdn.microsoft.com/en-us/library/dn746676%28v=vs.118%29.aspx

票数 26
EN

Stack Overflow用户

发布于 2014-07-26 21:13:28

此示例可能满足您的要求,只需从以下文件开始:

自那以后,样本已经移动了here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24909532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档