diff --git a/core/modules/serialization/src/Normalizer/TypedDataNormalizer.php b/core/modules/serialization/src/Normalizer/TypedDataNormalizer.php
index 60ce7d08f6..70c9911f8d 100644
--- a/core/modules/serialization/src/Normalizer/TypedDataNormalizer.php
+++ b/core/modules/serialization/src/Normalizer/TypedDataNormalizer.php
@@ -18,7 +18,13 @@ class TypedDataNormalizer extends NormalizerBase {
    * {@inheritdoc}
    */
   public function normalize($object, $format = NULL, array $context = []) {
-    return $object->getValue();
+    $value = $object->getValue();
+    // If the value is object or array, Return the normalized result,
+    // object value of array's child object must be normalizable.
+    if (isset($value) && (is_object($value) || is_array($value))) {
+      $value = $this->serializer->normalize($value, $format, $context);
+    }
+    return $value;
   }
 
 }
