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

Datatables Ajax请求后列名首字母小写?原因及默认机制疑问

问题分析与解答

结论

这个字段名首字母小写的现象不是DataTables的默认机制,根源几乎都是后端框架的JSON序列化配置导致的。

具体原因

  • 后端框架自动转换命名风格:绝大多数现代后端框架(比如ASP.NET Core、Spring Boot等)默认会将实体类的首字母大写属性(如DisplayCode)序列化为首字母小写的驼峰命名(如displayCode)。比如:
    • ASP.NET Core使用System.Text.Json时,默认开启了JsonNamingPolicy.CamelCase配置;
    • Java Spring Boot的Jackson框架默认也会将JavaBean的首字母大写属性转为小写首字母的驼峰格式。
      这种转换是后端在生成JSON响应时完成的,和前端的DataTables没有任何关系。
  • 验证方法:直接绕过前端,用Postman、curl或者浏览器直接请求后端API地址,查看返回的JSON字段名。如果此时已经是小写首字母,就可以确认是后端序列化的问题。

解决建议

根据需求选择以下两种方式之一:

  1. 修改后端序列化配置:关闭自动驼峰转换,让后端返回的JSON字段名和实体类属性名完全一致(如保留DisplayCode)。
  2. 调整前端DataTables配置:将columns中的data属性改为后端实际返回的小写首字母字段名,比如把"data": "DisplayCode"改成"data": "displayCode"。

你的代码整理

tableColumns = [
    {"data": "Id","name": "Id","title": "Id"},
    {"data": "Code", "name": "Code", "title": "Code"},
    {"data": "DisplayCode", "name": "DisplayCode","title": "DisplayCode"},
    {"data": "Name","name": "Name","title": "Name"},
    {"data": "Country","name": "Country", "title": "Country"},
    {"data": "BackColor","name": "BackColor","title": "BackColor"},
    {"data": "ForeColor", "name": "ForeColor","title": "ForeColor"}
]

table.DataTable({
    ajax: {
        url: tableurl,
        type: "POST",
    },
    dom: '<fB<t>lip>',
    buttons: true,
    processing: true,
    serverSide: true,
    filter: true,
    columns: tableColumns
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:47:36