diff --git a/Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs index 3c6a546a..d2392e17 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/TraceWriterTests.cs @@ -134,6 +134,21 @@ Newtonsoft.Json Error: 0 : Error! ]", traceJsonWriter.GetSerializedJsonMessage()); } + [Test] + public void WriteNullByteArray() + { + StringWriter sw = new StringWriter(); + TraceJsonWriter traceJsonWriter = new TraceJsonWriter(new JsonTextWriter(sw)); + traceJsonWriter.WriteStartArray(); + traceJsonWriter.WriteValue((byte[])null); + traceJsonWriter.WriteEndArray(); + + StringAssert.AreEqual(@"Serialized JSON: +[ + null +]", traceJsonWriter.GetSerializedJsonMessage()); + } + [Test] public void WriteJRaw() { diff --git a/Src/Newtonsoft.Json/Serialization/TraceJsonWriter.cs b/Src/Newtonsoft.Json/Serialization/TraceJsonWriter.cs index 52818a3a..07cac70e 100644 --- a/Src/Newtonsoft.Json/Serialization/TraceJsonWriter.cs +++ b/Src/Newtonsoft.Json/Serialization/TraceJsonWriter.cs @@ -69,7 +69,14 @@ namespace Newtonsoft.Json.Serialization { _textWriter.WriteValue(value); _innerWriter.WriteValue(value); - base.WriteValue(value); + if (value == null) + { + base.WriteUndefined(); + } + else + { + base.WriteValue(value); + } } public override void WriteValue(DateTime value)