---
title: "Column Headers | Features"
description: "ZingGrid has default behaviors for displaying JSON keys as column headers, as well as custom functionality. Use Camel or Kebab Case, Underscore, Nested JSON keys, etc."
url: https://www.zinggrid.com/docs/features/column-headers
---
```text
experiment_id: web-retrieval-v1
fixture_id: /docs/features/column-headers.md
mode: provenance
representation: markdown
origin_response_id: df578afd9efe944e6ce0396d36d5ee37
version: 2026-10-21
version_created_at_utc: 2026-10-21T20:42:35.676Z
version_nonce: b1568077307feabd4bece1b16ae82178
generated_at_utc: 2026-11-09T16:15:15.285Z
response_nonce: dd70a7700a013b727dd5211a3a8f92db
```
# Column Headers
ZingGrid has default behaviors for displaying column headers, as well as custom functionality.
## Header Typography Reformatting
ZingGrid automatically takes your camel, kebab, and snake case data keys and reformats it to normal typography.
### Camel Case
ZingGrid capitalizes and spaces your camel case data keys. Take this data for example:
```javascript
{
"playerName": "Eden Hazard",
"playerClub": "Chelsea",
"goalsScored": 5
}
```
Once rendered, the grid will display:
[Example code](https://app.zingsoft.com/demos/embed/9L8CMADP)
### Kebab Case
ZingGrid capitalizes, spaces, and removes dashes from your kebab case data keys. Take this data for example:
```javascript
{
"player-name": "Eden Hazard",
"player-club": "Chelsea",
"goals-scored": 5
}
```
Once rendered, the grid will display:
[Example code](https://app.zingsoft.com/demos/embed/1N8CPEVK)
### Snake Case (Underscore)
ZingGrid capitalizes, spaces, and removes the underscore from your snake case data keys. Take this data for example:
```javascript
{
"player_name": "Eden Hazard",
"player_club": "Chelsea",
"goals_scored": 5
}
```
Once rendered, the grid will display:
[Example code](https://app.zingsoft.com/demos/embed/WK1INA9K)
## Nested
You can nest your headers using brackets, like so:
```javascript
{
"playerInfo": {
"name": "Eden Hazard",
"club": "Chelsea",
"goals": 5
}
}
```
### Nested Headers Grid
Here is a complete grid with "name", "club", and "goals" headers nested within the "Player Info" header:
[Example code](https://app.zingsoft.com/demos/embed/6NAQLFCN)
## Custom Nested
You can also nest your headers using **dot** notation in the `header` attribute, like so:
```html
```
### Custom Nested Headers Grid
Here is a complete grid with custom nested headers:
[Example code](https://app.zingsoft.com/demos/embed/DUVPIGXD)
## Autoformat Off
You can turn off or add a custom function to automatic header behavior with the `header-auto-format` attribute on the `` tag. For example:
```html
```
### Autoformat Disabled and Custom Autoformat Grids
Here are two complete grids side-by-side, one with disabled autoformatting and one with custom autoformatting:
[Example code](https://app.zingsoft.com/demos/embed/X18DVW4M)
## Custom
You can override your headers by adding the `header` attribute to the `` tag, like so:
```html
```
### Custom Headers Grid
Here is a complete grid with defined custom headers:
[Example code](https://app.zingsoft.com/demos/embed/ZQUK94T5)
## Related Resources
Here are some extra resources related to this feature to help with creating your grid:
* [Data Types](https://www.zinggrid.com/docs/data-types)