diff --git a/core/modules/views/config/schema/views.field.schema.yml b/core/modules/views/config/schema/views.field.schema.yml
index 58d4c0d..b89b40c 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 b2fd744..532aff2 100644
--- a/core/modules/views/src/Plugin/views/field/Serialized.php
+++ b/core/modules/views/src/Plugin/views/field/Serialized.php
@@ -26,6 +26,7 @@ protected function defineOptions() {
     $options = parent::defineOptions();
     $options['format'] = array('default' => 'unserialized');
     $options['key'] = array('default' => '');
+    $options['custom_template'] = ['default' => ''];
     return $options;
   }
 
@@ -43,6 +44,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'],
     );
@@ -56,6 +58,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'),
+        ),
+      ),
+    );
   }
 
   /**
@@ -81,6 +94,17 @@ 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);
+      $render_array = [
+        '#type' => 'inline_template',
+        '#template' => $this->options['custom_template'],
+        '#context' => [
+          'item' => $value,
+        ],
+      ];
+      return $this->getRenderer()->renderPlain($render_array);
+    }
 
     return $value;
   }
