You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Functions 3.1 .NET Core 序列化返回对象时帕斯卡命名转驼峰配置问题

Azure Function HttpTrigger 序列化命名规则问题解答

可否全局配置序列化规则?

可以,无需为每个函数单独编写序列化逻辑,通过依赖注入注入全局序列化配置即可实现全局统一规则。

自动转驼峰的产生原因

你遇到的命名转换是ASP.NET Core默认序列化策略的表现:

  • 进程内运行的Azure Function HttpTrigger底层复用了ASP.NET Core的MVC组件栈,默认使用System.Text.Json作为序列化器
  • System.Text.Json的默认属性命名策略为JsonNamingPolicy.CamelCase,会自动将C#类常用的帕斯卡命名属性转换为JSON常用的驼峰命名格式

全局配置方法

进程内(In-Process)模型配置

添加Startup启动类,重写服务配置逻辑即可:

using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using System.Text.Json;

[assembly: FunctionsStartup(typeof(MyService.BFF.Startup))]
namespace MyService.BFF
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services.AddControllers()
                .AddJsonOptions(options =>
                {
                    // 设为null即保留C#类的原属性命名(帕斯卡)
                    options.JsonSerializerOptions.PropertyNamingPolicy = null;
                    // 可按需添加其他序列化配置,例:忽略null值
                    // options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
                });
        }
    }
}

隔离工作进程(Isolated Worker)模型配置

在Program.cs入口文件中配置即可:

using Microsoft.Extensions.Hosting;
using System.Text.Json;

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .ConfigureServices(services =>
    {
        services.Configure<JsonSerializerOptions>(options =>
        {
            options.PropertyNamingPolicy = null;
        });
    })
    .Build();

host.Run();

设计逻辑说明

该默认设计是Web生态的通用适配策略:

  • 前后端对接场景中,JavaScript/TypeScript的变量命名普遍遵循驼峰规范,默认转换可以大幅减少前后端字段命名适配的重复代码
  • 该规则仅作用于默认序列化的对象响应场景,如果你手动序列化对象返回字符串类型响应,不会触发自动转换
  • 全局配置的优先级高于默认规则,配置后所有函数的默认序列化行为都会统一生效,不会出现不同返回规则不一致的问题

内容的提问来源于stack exchange,提问作者Mat-Tap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:45:01