diff --git a/core/lib/Drupal/Core/CoreBundle.php b/core/lib/Drupal/Core/CoreBundle.php
index fb8218a..170c514 100644
--- a/core/lib/Drupal/Core/CoreBundle.php
+++ b/core/lib/Drupal/Core/CoreBundle.php
@@ -235,7 +235,10 @@ 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.json', 'Drupal\Core\Serialization\JsonEncoder')
+      ->addTag('encoder')
+      ->addTag('format_info', array('json' => 'JSON'));
 
     $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..267db46 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('format_info') as $id => $attributes) {
+      foreach ($attributes[0] 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 00f1433..fc19e4e 100644
--- a/core/modules/jsonld/lib/Drupal/jsonld/JsonldBundle.php
+++ b/core/modules/jsonld/lib/Drupal/jsonld/JsonldBundle.php
@@ -63,7 +63,11 @@ public function build(ContainerBuilder $container) {
     // Add Encoders to service container.
     foreach ($encoders as $format => $encoder_class) {
       $container->register("serializer.encoder.{$format}", $encoder_class)
-        ->addTag('encoder', array('priority' => $priority));
+        ->addTag('encoder', array('priority' => $priority))
+        ->addTag('format_info', array(
+          'jsonld' => 'JSON-LD',
+          'drupal_jsonld' => 'Drupal JSON-LD',
+        ));
     }
 
     $container->register('jsonld.subscriber', 'Drupal\jsonld\EventSubscriber\JsonldSubscriber')
