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

ASP.NET Core:将JSON序列化中Field属性值转为驼峰式

解决AGGrid字段与JSON小驼峰属性不匹配的问题

直接复用官方序列化的驼峰转换规则

ASP.NET Core默认使用System.Text.Json的小驼峰命名策略,直接调用内置的转换器就能让Field值和序列化后的对象属性名完全匹配,无需自己编写转换逻辑。

代码实现示例

  1. 获取内置驼峰命名策略
using System.Text.Json;

// 调用官方默认的驼峰转换规则
var camelCasePolicy = JsonNamingPolicy.CamelCase;

// 测试转换效果
string testField1 = "IDTabella";
string testField2 = "IDDTUltimoCommission";
string result1 = camelCasePolicy.ConvertName(testField1); // 输出: idTabella
string result2 = camelCasePolicy.ConvertName(testField2); // 输出: idDtUltimoCommission
  1. 在EF Core查询时转换字段
    在返回给前端的DTO映射中,直接对数据库取出的Field值做转换:
public class AgGridColumnDto
{
    public string Field { get; set; }
    public string HeaderName { get; set; }
    public int? Width { get; set; }
    // 其他网格列属性
}

// 查询时投影转换
var gridData = await _context.TB_AGGrid_Definitions
    .Include(d => d.Columns)
    .Select(def => new 
    {
        def.Id,
        def.GridName,
        Columns = def.Columns.Select(col => new AgGridColumnDto
        {
            Field = JsonNamingPolicy.CamelCase.ConvertName(col.Field),
            HeaderName = col.HeaderName,
            Width = col.Width
        }).ToList()
    })
    .FirstOrDefaultAsync(d => d.Id == gridId);

若使用Newtonsoft.Json的适配方案

如果项目用的是Json.NET而非System.Text.Json,则用对应的命名策略:

using Newtonsoft.Json.Serialization;

var camelCaseStrategy = new CamelCaseNamingStrategy();
string convertedField = camelCaseStrategy.GetPropertyName("IDTabella", false);

这种方式完全复用官方序列化的转换逻辑,能精准处理连续大写前缀、缩写等特殊场景,确保AGGrid的field值和前端接收的小驼峰属性完全匹配。

内容的提问来源于stack exchange,提问作者Andrea Moretti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 11:52:09