asp.net core 1.0 web api 使用驼峰命名法。

10 浏览
0 Comments

asp.net core 1.0 web api 使用驼峰命名法。

RC2上,相同的代码返回驼峰格式的JSON。在NetCore 1.0发布后,我开始了一个新项目,但相同的代码返回小写的JSON。

尝试了多种解决方案,但都没有起作用。

web-api-serialize-properties-starting-from-lowercase-letter

0
0 Comments

在使用ASP.NET Core 1.0 Web API时,有时我们希望返回的JSON字符串的属性名采用驼峰命名法(camelCase),以匹配.NET类和属性的命名规范。然而,默认情况下,ASP.NET Core返回的JSON字符串使用帕斯卡命名法(PascalCase)。

为了解决这个问题,我们可以在全局级别或者个别序列化器级别进行设置。

在全局级别设置时,我们可以通过修改Startup.cs文件中的ConfigureServices方法来实现。我们需要创建一个JsonSerializerOptions对象,并将其设置为使用驼峰命名法。具体代码如下所示:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers()
        .AddJsonOptions(options =>
        {
            options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
        });
}

在个别序列化器级别进行设置时,我们可以在控制器的操作方法中使用JsonResult对象来返回JSON数据。我们需要创建一个JsonSerializerSettings对象,并将其设置为使用默认的ContractResolver。具体代码如下所示:

var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new DefaultContractResolver() };
return new JsonResult(myObject, jsonSerializerSettings);

这样,返回的JSON字符串的属性名将会采用驼峰命名法。

通过上述方法,我们可以根据需求将ASP.NET Core 1.0 Web API返回的JSON字符串的属性名设置为驼峰命名法,以便与.NET类和属性的命名规范保持一致。

0
0 Comments

ASP.NET Core 1.0是一个开发Web应用程序的框架,它提供了许多功能和工具来简化开发过程。在ASP.NET Core 1.0中,使用camelCase命名约定是一种常见的做法,它可以用于保持JSON对象的属性名称与.NET类属性名称相同。

然而,ASP.NET Core 1.0的默认行为是使用PascalCase命名约定,这与camelCase不同。这可能导致在使用ASP.NET Core 1.0的Web API时出现问题,因为JSON对象的属性名称与.NET类属性名称不匹配。

为了解决这个问题,可以使用以下代码片段:

services
    .AddMvc()
    .AddJsonOptions(options =>
    {
        options.SerializerSettings.ContractResolver
            = new Newtonsoft.Json.Serialization.DefaultContractResolver();
    });

这段代码将在应用程序启动时配置MVC服务,并将JSON序列化选项添加到JSON选项中。通过将ContractResolver设置为DefaultContractResolver,可以确保JSON对象的属性名称与.NET类属性名称保持一致,从而解决了camelCase问题。

为了使用这段代码,需要引用以下命名空间/引用:

Microsoft.Extensions.DependencyInjection

这个命名空间包含了用于配置MVC的扩展方法。在ASP.NET Core 1.0中,可以通过使用Microsoft.Extensions.DependencyInjection.IMvcBuilder类的扩展方法来配置MVC。在这个例子中,我们使用了MvcJsonMvcBuilderExtensions类的AddJsonOptions方法来添加JSON选项。

这是一个在使用ASP.NET Core 1.0的Web API时解决camelCase问题的示例。通过使用上述代码片段,可以确保JSON对象的属性名称与.NET类属性名称相同,从而提高开发的一致性和可维护性。

0
0 Comments

在ASP.NET Core 1.0 Web API中使用camelCase的问题出现的原因是默认的JSON行为会将属性名转换为camelCase。然而,有些开发者希望保持属性名不变,即使用原始的大小写。为了解决这个问题,可以在`ConfigureServices`方法中进行配置。

解决方法如下:

public void ConfigureServices(IServiceCollection services)  
{
    services.AddMvc()
        .AddJsonOptions(options =>
        {
            options.SerializerSettings.ContractResolver =
                new DefaultContractResolver();
        });
}

需要注意的是,这种配置在.NET Core 2.0中可能会有不同。在.NET Core 2.0中,`DefaultContractResolver`会将属性名转换为TitleCase,而`CamelCasePropertyNamesContractResolver`会保持属性名的大小写不变。

不清楚在.NET Core 1.x和2.0之间是否有这种改变。

0