diff --git a/core/modules/views/config/schema/views.field.schema.yml b/core/modules/views/config/schema/views.field.schema.yml
index 562e8ca..45cb6f8 100644
--- a/core/modules/views/config/schema/views.field.schema.yml
+++ b/core/modules/views/config/schema/views.field.schema.yml
@@ -147,6 +147,9 @@ views.field.serialized:
     key:
       type: string
       label: 'Which key should be displayed'
+    custom_template:
+      type: string
+      label: 'Custom twig template'
 
 views.field.standard:
   type: views_field
diff --git a/core/modules/views/src/Plugin/views/field/Serialized.php b/core/modules/views/src/Plugin/views/field/Serialized.php
index 3df1cca..18b048a 100644
--- a/core/modules/views/src/Plugin/views/field/Serialized.php
+++ b/core/modules/views/src/Plugin/views/field/Serialized.php
@@ -21,6 +21,7 @@ protected function defineOptions() {
     $options = parent::defineOptions();
     $options['format'] = array('default' => 'unserialized');
     $options['key'] = array('default' => '');
+    $options['custom_template'] = ['default' => ''];
     return $options;
   }
 
@@ -38,6 +39,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         'unserialized' => $this->t('Full data (unserialized)'),
         'serialized' => $this->t('Full data (serialized)'),
         'key' => $this->t('A certain key'),
+        'custom_template' => $this->t('A custom twig template'),
       ),
       '#default_value' => $this->options['format'],
     );
@@ -51,6 +53,17 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         ),
       ),
     );
+    $form['custom_template'] = array(
+      '#type' => 'textarea',
+      '#title' => $this->t('Custom template'),
+      '#desciption' => $this->t('A custom twig template to display the unserialized field'),
+      '#default_value' => $this->options['custom_template'],
+      '#states' => array(
+        'visible' => array(
+          ':input[name="options[format]"]' => array('value' => 'custom_template'),
+        ),
+      ),
+    );
   }
 
   /**
@@ -76,6 +89,16 @@ public function render(ResultRow $values) {
       $value = (array) unserialize($value);
       return $this->sanitizeValue($value[$this->options['key']]);
     }
+    elseif ($this->options['format'] == 'custom_template' && !empty($this->options['custom_template'])) {
+      $value = unserialize($value);
+      return [
+        '#type' => 'inline_template',
+        '#template' => $this->options['custom_template'],
+        '#context' => [
+          'item' => $value,
+        ],
+      ];
+    }
 
     return $value;
   }
