LOG4J2-2966 Replace String.valueOf() usages with ParameterizedMessage.deepToString().
diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/MessageParameterResolver.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/MessageParameterResolver.java
index b4d39f3..059e5b1 100644
--- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/MessageParameterResolver.java
+++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/MessageParameterResolver.java
@@ -22,6 +22,7 @@
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.ParameterConsumer;
 import org.apache.logging.log4j.message.ParameterVisitable;
+import org.apache.logging.log4j.message.ParameterizedMessage;
 
 /**
  * {@link Message} parameter (i.e., {@link Message#getParameters()}) resolver.
@@ -124,7 +125,8 @@
                 }
                 final Object parameter = parameters[i];
                 if (stringified) {
-                    final String stringifiedParameter = String.valueOf(parameter);
+                    final String stringifiedParameter =
+                            ParameterizedMessage.deepToString(parameter);
                     jsonWriter.writeString(stringifiedParameter);
                 } else {
                     jsonWriter.writeValue(parameter);
@@ -137,7 +139,8 @@
         else {
             final Object parameter = parameters[index];
             if (stringified) {
-                final String stringifiedParameter = String.valueOf(parameter);
+                final String stringifiedParameter =
+                        ParameterizedMessage.deepToString(parameter);
                 jsonWriter.writeString(stringifiedParameter);
             } else {
                 jsonWriter.writeValue(parameter);
@@ -193,7 +196,8 @@
                 // Write the value.
                 if (arrayNeeded || state.resolver.index == index) {
                     if (state.resolver.stringified) {
-                        final String stringifiedParameter = String.valueOf(parameter);
+                        final String stringifiedParameter =
+                                ParameterizedMessage.deepToString(parameter);
                         state.jsonWriter.writeString(stringifiedParameter);
                     } else {
                         state.jsonWriter.writeValue(parameter);
diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ReadOnlyStringMapResolver.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ReadOnlyStringMapResolver.java
index 3735017..05164c9 100644
--- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ReadOnlyStringMapResolver.java
+++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/ReadOnlyStringMapResolver.java
@@ -20,6 +20,7 @@
 import org.apache.logging.log4j.layout.template.json.util.JsonWriter;
 import org.apache.logging.log4j.layout.template.json.util.Recycler;
 import org.apache.logging.log4j.layout.template.json.util.RecyclerFactory;
+import org.apache.logging.log4j.message.ParameterizedMessage;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.TriConsumer;
 
@@ -201,7 +202,8 @@
                 final ReadOnlyStringMap map = mapAccessor.apply(logEvent);
                 final Object value = map == null ? null : map.getValue(key);
                 if (stringified) {
-                    final String valueString = String.valueOf(value);
+                    final String valueString =
+                            ParameterizedMessage.deepToString(value);
                     jsonWriter.writeString(valueString);
                 } else {
                     jsonWriter.writeValue(value);
@@ -348,7 +350,7 @@
                     loopContext.jsonWriter.writeObjectKey(loopContext.prefixedKey);
                 }
                 if (loopContext.stringified && !(value instanceof String)) {
-                    final String valueString = String.valueOf(value);
+                    final String valueString = ParameterizedMessage.deepToString(value);
                     loopContext.jsonWriter.writeString(valueString);
                 } else {
                     loopContext.jsonWriter.writeValue(value);
diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/TemplateResolvers.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/TemplateResolvers.java
index ab4dfa4..1109d28 100644
--- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/TemplateResolvers.java
+++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/TemplateResolvers.java
@@ -20,6 +20,7 @@
 import org.apache.logging.log4j.layout.template.json.JsonTemplateLayout.EventTemplateAdditionalField;
 import org.apache.logging.log4j.layout.template.json.util.JsonReader;
 import org.apache.logging.log4j.layout.template.json.util.JsonWriter;
+import org.apache.logging.log4j.message.ParameterizedMessage;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -403,7 +404,7 @@
     }
 
     private static <V> TemplateResolver<V> ofNumber(final Number number) {
-        final String numberString = String.valueOf(number);
+        final String numberString = ParameterizedMessage.deepToString(number);
         return (final V ignored, final JsonWriter jsonWriter) ->
                 jsonWriter.writeRawString(numberString);
     }
diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/TimestampResolver.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/TimestampResolver.java
index 7049e23..f66dd1e 100644
--- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/TimestampResolver.java
+++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/TimestampResolver.java
@@ -18,7 +18,7 @@
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.time.Instant;
-import org.apache.logging.log4j.core.util.datetime.FastDateFormat;
+import org.apache.logging.log4j.core.time.internal.format.FastDateFormat;
 import org.apache.logging.log4j.layout.template.json.JsonTemplateLayoutDefaults;
 import org.apache.logging.log4j.layout.template.json.util.JsonWriter;
 
@@ -381,7 +381,10 @@
 
         private Instant instant;
 
-        private char[] resolution = new char[/* integral: */MAX_LONG_LENGTH + /* dot: */1 + /* fractional: */MAX_LONG_LENGTH ];
+        private char[] resolution = new char[
+                /* integral: */ MAX_LONG_LENGTH +
+                /* dot: */ 1 +
+                /* fractional: */ MAX_LONG_LENGTH];
 
         private int resolutionLength;
 
diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonWriter.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonWriter.java
index 8bfa914..4523452 100644
--- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonWriter.java
+++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonWriter.java
@@ -16,6 +16,7 @@
  */
 package org.apache.logging.log4j.layout.template.json.util;
 
+import org.apache.logging.log4j.message.ParameterizedMessage;
 import org.apache.logging.log4j.util.BiConsumer;
 import org.apache.logging.log4j.util.IndexedReadOnlyStringMap;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
@@ -215,7 +216,7 @@
         else {
             final String stringValue = value instanceof String
                     ? (String) value
-                    : String.valueOf(value);
+                    : ParameterizedMessage.deepToString(value);
             writeString(stringValue);
         }