diff --git a/jsonapi.info.yml b/jsonapi.info.yml
index 843dd9d..5aae3c0 100644
--- a/jsonapi.info.yml
+++ b/jsonapi.info.yml
@@ -5,5 +5,4 @@ core: 8.x
 package: REST
 dependencies:
   - drupal:system (>=8.2)
-  - serialization
-  - rest
+  - hal
diff --git a/src/Normalizer/ConfigEntityNormalizer.php b/src/Normalizer/ConfigEntityNormalizer.php
index c6f5e88..454035a 100644
--- a/src/Normalizer/ConfigEntityNormalizer.php
+++ b/src/Normalizer/ConfigEntityNormalizer.php
@@ -4,7 +4,6 @@ namespace Drupal\jsonapi\Normalizer;
 
 use Drupal\Core\Config\Entity\ConfigEntityInterface;
 use Drupal\jsonapi\RelationshipInterface;
-use Symfony\Component\Serializer\Exception\UnexpectedValueException;
 
 /**
  * Class ConfigEntityNormalizer.
@@ -35,6 +34,20 @@ class ConfigEntityNormalizer extends EntityNormalizer {
    */
   protected function serializeField($field, $context, $format) {
     $output = $this->serializer->normalize($field, $format, $context);
+    if (is_array($output)) {
+      // If the property is multivalue combine all of them in a single
+      // Value\FieldNormalizerValue
+      $data = [];
+      foreach ($output as $key => $value) {
+        $data[$key] = $value->rasterizeValue();
+      }
+      $output = new Value\FieldNormalizerValue(
+        [new Value\FieldItemNormalizerValue($data)],
+        1
+      );
+      $output->setPropertyType('attributes');
+      return $output;
+    }
     $field instanceof RelationshipInterface ?
       $output->setPropertyType('relationships') :
       $output->setPropertyType('attributes');
diff --git a/src/Normalizer/FieldNormalizer.php b/src/Normalizer/FieldNormalizer.php
index 6bb59db..aca49c2 100644
--- a/src/Normalizer/FieldNormalizer.php
+++ b/src/Normalizer/FieldNormalizer.php
@@ -49,7 +49,7 @@ class FieldNormalizer extends NormalizerBase {
    * @param array $context
    *   The context array.
    *
-   * @return array
+   * @return \Drupal\jsonapi\Normalizer\Value\FieldNormalizerValue
    *   The array of normalized field items.
    */
   protected function normalizeFieldItems(FieldItemListInterface $field, $format, $context) {
diff --git a/tests/src/Unit/Normalizer/ConfigEntityNormalizerTest.php b/tests/src/Unit/Normalizer/ConfigEntityNormalizerTest.php
new file mode 100644
index 0000000..7370ae7
--- /dev/null
+++ b/tests/src/Unit/Normalizer/ConfigEntityNormalizerTest.php
@@ -0,0 +1,102 @@
+<?php
+
+namespace Drupal\Tests\jsonapi\Unit\Normalizer;
+
+use Drupal\Core\Config\Entity\ConfigEntityInterface;
+use Drupal\jsonapi\Configuration\ResourceConfigInterface;
+use Drupal\jsonapi\Configuration\ResourceManagerInterface;
+use Drupal\jsonapi\Normalizer\ConfigEntityNormalizer;
+use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\Context\CurrentContextInterface;
+use Drupal\jsonapi\Normalizer\ScalarNormalizer;
+use Drupal\Tests\UnitTestCase;
+use Symfony\Component\Routing\Route;
+use Symfony\Component\Serializer\Serializer;
+
+/**
+ * Class DocumentRootNormalizerTest.
+ *
+ * @package Drupal\Tests\serialization\Unit\Normalizer
+ *
+ * @coversDefaultClass \Drupal\jsonapi\Normalizer\DocumentRootNormalizer
+ *
+ * @group jsonapi
+ */
+class ConfigEntityNormalizerTest extends UnitTestCase {
+
+  /**
+   * The normalizer under test.
+   *
+   * @var \Drupal\jsonapi\Normalizer\DocumentRootNormalizer
+   */
+  protected $normalizer;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp() {
+    $link_manager = $this->prophesize(LinkManagerInterface::class);
+    $current_context_manager = $this->prophesize(CurrentContextInterface::class);
+
+    $current_route = $this->prophesize(Route::class);
+    $current_route->getDefault('_on_relationship')->willReturn(FALSE);
+
+    $current_context_manager->getCurrentRoute()->willReturn(
+      $current_route->reveal()
+    );
+
+    $resource_manager = $this->prophesize(ResourceManagerInterface::class);
+    $current_context_manager->getResourceManager()->willReturn(
+      $resource_manager->reveal()
+    );
+
+    $this->normalizer = new ConfigEntityNormalizer(
+      $link_manager->reveal(),
+      $current_context_manager->reveal()
+    );
+
+    $normalizers = [new ScalarNormalizer()];
+    $serializer = new Serializer($normalizers, []);
+    $this->normalizer->setSerializer($serializer);
+  }
+
+  /**
+   * @covers ::normalize
+   * @dataProvider normalizeProvider
+   */
+  public function testNormalize($input, $expected) {
+    $resource_config = $this->prophesize(ResourceConfigInterface::class);
+    $resource_config->getTypeName()->willReturn('dolor');
+    $resource_config->getBundleId()->willReturn('sid');
+    $context = [
+      'resource_config' => $resource_config->reveal(),
+    ];
+    $entity = $this->prophesize(ConfigEntityInterface::class);
+    $entity->toArray()->willReturn(['amet' => $input]);
+    $entity->getCacheContexts()->willReturn([]);
+    $entity->getCacheTags()->willReturn([]);
+    $entity->getCacheMaxAge()->willReturn(-1);
+    $normalized = $this->normalizer->normalize($entity->reveal(), 'api_json', $context);
+    $first = $normalized->getValues();
+    $first = reset($first);
+    $this->assertSame($expected, $first->rasterizeValue());
+  }
+
+  /**
+   * Data provider for the normalize test.
+   *
+   * @return array
+   *   The data for the test method.
+   */
+  public function normalizeProvider() {
+    return [
+      ['lorem', 'lorem'],
+      [
+        ['ipsum' => 'dolor', 'ra' => 'foo'],
+        ['ipsum' => 'dolor', 'ra' => 'foo'],
+      ],
+      [['ipsum' => 'dolor'], 'dolor'],
+    ];
+  }
+
+}
