diff --git a/core/lib/Drupal/Core/CoreBundle.php b/core/lib/Drupal/Core/CoreBundle.php
index 337d5ab..63b8a52 100644
--- a/core/lib/Drupal/Core/CoreBundle.php
+++ b/core/lib/Drupal/Core/CoreBundle.php
@@ -154,6 +154,11 @@ public function build(ContainerBuilder $container) {
       ->addArgument(array())
       ->addArgument(array());
 
+    $container->register('serializer.normalizer.json', 'Drupal\Core\Entity\EntityNormalizer')->addTag('normalizer');
+    $container->register('serializer.encoder.json', 'Symfony\Component\Serializer\Encoder\JsonEncoder')->addTag('encoder');
+    $container->register('serializer.normalizer.xml', 'Drupal\Core\Entity\EntityNormalizer')->addTag('normalizer');
+    $container->register('serializer.encoder.xml', 'Symfony\Component\Serializer\Encoder\XmlEncoder')->addTag('encoder');
+
     $container->addCompilerPass(new RegisterMatchersPass());
     $container->addCompilerPass(new RegisterNestedMatchersPass());
     // Add a compiler pass for registering event subscribers.
diff --git a/core/lib/Drupal/Core/Entity/EntityNormalizer.php b/core/lib/Drupal/Core/Entity/EntityNormalizer.php
new file mode 100644
index 0000000..a43b9a2
--- /dev/null
+++ b/core/lib/Drupal/Core/Entity/EntityNormalizer.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\Core\Entity\EntityNormalizer.
+ */
+
+namespace Drupal\Core\Entity;
+
+use Symfony\Component\Serializer\Exception\RuntimeException;
+use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
+
+/**
+ * Converts the Drupal entity object structures to a normalized array.
+ *
+ * The format is not checked here, but assumed it will be supported.
+ */
+class EntityNormalizer implements NormalizerInterface {
+
+  /**
+   * Normalizes an object into a set of arrays/scalars.
+   *
+   * @param object $object
+   *   The \Drupal\Core\Entity\EntityNG object to normalize.
+   * @param string $format
+   *   Format the normalization result will be encoded as.
+   *
+   * @return array
+   *   An array containing the properties of the entity.
+   */
+  public function normalize($object, $format = NULL) {
+    return $object->getProperties();
+  }
+
+  /**
+   * Checks whether the data and format are supported by this normalizer.
+   *
+   * @param mixed $data
+   *   Data to normalize.
+   * @param string $format
+   *   Format the normalization result will be encoded as.
+   *
+   * @return bool
+   *   Returns TRUE if the normalizer can handle the request, FALSE otherwise.
+   */
+  public function supportsNormalization($data, $format = NULL) {
+    return is_object($data) && ($data instanceof EntityNG);
+  }
+
+}
