diff --git a/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php b/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php
index 4706bf4..4358793 100644
--- a/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php
+++ b/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php
@@ -2,12 +2,13 @@
 
 namespace Drupal\serialization\Normalizer;
 
+use Drupal\Core\Entity\EntityRepositoryInterface;
 use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem;
 
 /**
  * Adds the file URI to embedded file entities.
  */
-class EntityReferenceFieldItemNormalizer extends ComplexDataNormalizer {
+class EntityReferenceFieldItemNormalizer extends FieldItemNormalizer {
 
   /**
    * The interface or class that this Normalizer supports.
@@ -17,6 +18,23 @@ class EntityReferenceFieldItemNormalizer extends ComplexDataNormalizer {
   protected $supportedInterfaceOrClass = EntityReferenceItem::class;
 
   /**
+   * The entity repository.
+   *
+   * @var \Drupal\Core\Entity\EntityRepositoryInterface
+   */
+  protected $entityRepository;
+
+  /**
+   * Constructs a EntityReferenceFieldItemNormalizer object.
+   *
+   * @param \Drupal\Core\Entity\EntityRepositoryInterface $entity_repository
+   *   The entity repository.
+   */
+  public function __construct(EntityRepositoryInterface $entity_repository = NULL) {
+    $this->entityRepository = $entity_repository;
+  }
+
+  /**
    * {@inheritdoc}
    */
   public function normalize($field_item, $format = NULL, array $context = []) {
@@ -35,8 +53,30 @@ public function normalize($field_item, $format = NULL, array $context = []) {
         $values['url'] = $url;
       }
     }
-
     return $values;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function constructValue($data, $context) {
+    if (!empty($data['target_uuid'])) {
+      return $this->entityRepository()->loadEntityByUuid($data['target_type'], $data['target_uuid']);
+    }
+    else {
+      return parent::constructValue($data, $context);
+    }
+
+  }
+
+  /**
+   * Gets the entity repository object.
+   *
+   * @return \Drupal\Core\Entity\EntityRepositoryInterface
+   *   The entity repository.
+   */
+  protected function entityRepository() {
+    return $this->entityRepository ?: \Drupal::service('entity.repository');
+  }
+
 }
