---
title: Key-value entry
---
import AutoScreenshot from "@components/AutoScreenshot.astro"
import UtilityInjection from "@components/UtilityInjection.astro"
## Introduction
The key-value entry allows you to render key-value pairs of data, from a one-dimensional JSON object / PHP array.
```php
use Filament\Infolists\Components\KeyValueEntry;
KeyValueEntry::make('meta')
```
For example, the state of this entry might be represented as:
```php
[
'description' => 'Filament is a collection of Laravel packages',
'og:type' => 'website',
'og:site_name' => 'Filament',
]
```
If you're saving the data in Eloquent, you should be sure to add an `array` [cast](https://laravel.com/docs/eloquent-mutators#array-and-json-casting) to the model property:
```php
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
/**
* @return array
*/
protected function casts(): array
{
return [
'meta' => 'array',
];
}
// ...
}
```
## Customizing the key column's label
You may customize the label for the key column using the `keyLabel()` method:
```php
use Filament\Infolists\Components\KeyValueEntry;
KeyValueEntry::make('meta')
->keyLabel('Property name')
```
As well as allowing a static value, the `keyLabel()` method also accepts a function to dynamically calculate it. You can inject various utilities into the function as parameters.
## Customizing the value column's label
You may customize the label for the value column using the `valueLabel()` method:
```php
use Filament\Infolists\Components\KeyValueEntry;
KeyValueEntry::make('meta')
->valueLabel('Property value')
```
As well as allowing a static value, the `valueLabel()` method also accepts a function to dynamically calculate it. You can inject various utilities into the function as parameters.