diff --git a/core/lib/Drupal/Core/CoreBundle.php b/core/lib/Drupal/Core/CoreBundle.php
index 60bb01e..cac313f 100644
--- a/core/lib/Drupal/Core/CoreBundle.php
+++ b/core/lib/Drupal/Core/CoreBundle.php
@@ -248,8 +248,11 @@ public function build(ContainerBuilder $container) {
     $container->register('serializer.normalizer.complex_data', 'Drupal\Core\Serialization\ComplexDataNormalizer')->addTag('normalizer');
     $container->register('serializer.normalizer.list', 'Drupal\Core\Serialization\ListNormalizer')->addTag('normalizer');
     $container->register('serializer.normalizer.typed_data', 'Drupal\Core\Serialization\TypedDataNormalizer')->addTag('normalizer');
-    $container->register('serializer.encoder.json', 'Drupal\Core\Serialization\JsonEncoder')->addTag('encoder');
-    $container->register('serializer.encoder.xml', 'Drupal\Core\Serialization\XmlEncoder')->addTag('encoder');
+
+    $container->register('serializer.encoder.json', 'Drupal\Core\Serialization\JsonEncoder')
+      ->addTag('encoder', array('format' => array('json' => 'JSON')));
+    $container->register('serializer.encoder.xml', 'Drupal\Core\Serialization\XmlEncoder')
+      ->addTag('encoder', array('format' => array('xml' => 'XML')));
 
     $container->register('flood', 'Drupal\Core\Flood\DatabaseBackend')
       ->addArgument(new Reference('database'));
diff --git a/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterSerializationClassesPass.php b/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterSerializationClassesPass.php
index 6ed101b..bb5914d 100644
--- a/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterSerializationClassesPass.php
+++ b/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterSerializationClassesPass.php
@@ -42,6 +42,15 @@ public function process(ContainerBuilder $container) {
     if (!empty($encoders)) {
       $definition->replaceArgument(1, $this->sort($encoders));
     }
+
+    // Find all serialization formats known.
+    $formats = array();
+    foreach ($container->findTaggedServiceIds('encoder') as $id => $attributes) {
+      foreach ($attributes[0]['format'] as $name => $label) {
+        $formats[$name] = $label;
+      }
+    }
+    $container->setParameter('serializer.formats', $formats);
   }
 
   /**
diff --git a/core/modules/jsonld/lib/Drupal/jsonld/JsonldBundle.php b/core/modules/jsonld/lib/Drupal/jsonld/JsonldBundle.php
index 6aa69ec..3024883 100644
--- a/core/modules/jsonld/lib/Drupal/jsonld/JsonldBundle.php
+++ b/core/modules/jsonld/lib/Drupal/jsonld/JsonldBundle.php
@@ -58,7 +58,13 @@ public function build(ContainerBuilder $container) {
     // Add the encoder to the service container. Encoders can only specify which
     // format they support in Encoder::supportsEncoding().
     $container->register('serializer.encoder.jsonld', 'Drupal\jsonld\JsonldEncoder')
-      ->addTag('encoder', array('priority' => $priority));
+      ->addTag('encoder', array(
+        'priority' => $priority,
+        'format' => array(
+          'jsonld' => 'JSON-LD',
+          'drupal_jsonld' => 'Drupal JSON-LD',
+        ),
+      ));
 
     $container->register('jsonld.subscriber', 'Drupal\jsonld\EventSubscriber\JsonldSubscriber')
       ->addTag('event_subscriber');
diff --git a/core/modules/system/tests/modules/serialization_test/lib/Drupal/serialization_test/SerializationTestBundle.php b/core/modules/system/tests/modules/serialization_test/lib/Drupal/serialization_test/SerializationTestBundle.php
index 1acb3f2..83be4ff 100644
--- a/core/modules/system/tests/modules/serialization_test/lib/Drupal/serialization_test/SerializationTestBundle.php
+++ b/core/modules/system/tests/modules/serialization_test/lib/Drupal/serialization_test/SerializationTestBundle.php
@@ -21,6 +21,7 @@ class SerializationTestBundle extends Bundle {
    */
   public function build(ContainerBuilder $container) {
     $container->register('serializer.normalizer.serialization_test', 'Drupal\serialization_test\SerializationTestNormalizer')->addTag('normalizer');
-    $container->register('serializer.encoder.serialization_test', 'Drupal\serialization_test\SerializationTestEncoder')->addTag('encoder');
+    $container->register('serializer.encoder.serialization_test', 'Drupal\serialization_test\SerializationTestEncoder')
+      ->addTag('encoder', array('format' => array('serialization_test' => 'Serialization test')));
   }
 }
