From ed50e034a0c98a3b61ff7ea75dc4ea1f397ecd4d Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Thu, 17 Oct 2013 09:35:26 +1300 Subject: [PATCH] -Fixed not quoting strings when QuoteName is false --- .../JsonTextWriterTest.cs | 18 ++++++++++++++++++ Src/Newtonsoft.Json/JsonTextWriter.cs | 10 +++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Src/Newtonsoft.Json.Tests/JsonTextWriterTest.cs b/Src/Newtonsoft.Json.Tests/JsonTextWriterTest.cs index bc30b234..e62a2218 100644 --- a/Src/Newtonsoft.Json.Tests/JsonTextWriterTest.cs +++ b/Src/Newtonsoft.Json.Tests/JsonTextWriterTest.cs @@ -52,6 +52,24 @@ namespace Newtonsoft.Json.Tests [TestFixture] public class JsonTextWriterTest : TestFixtureBase { + [Test] + public void QuoteNameAndStrings() + { + StringBuilder sb = new StringBuilder(); + StringWriter sw = new StringWriter(sb); + JsonTextWriter writer = new JsonTextWriter(sw) { QuoteName = false }; + + writer.WriteStartObject(); + + writer.WritePropertyName("name"); + writer.WriteValue("value"); + + writer.WriteEndObject(); + writer.Flush(); + + Assert.AreEqual(@"{name:""value""}", sb.ToString()); + } + [Test] public void CloseOutput() { diff --git a/Src/Newtonsoft.Json/JsonTextWriter.cs b/Src/Newtonsoft.Json/JsonTextWriter.cs index 93c2f07c..3ebb4e5c 100644 --- a/Src/Newtonsoft.Json/JsonTextWriter.cs +++ b/Src/Newtonsoft.Json/JsonTextWriter.cs @@ -214,7 +214,7 @@ namespace Newtonsoft.Json { InternalWritePropertyName(name); - WriteEscapedString(name); + WriteEscapedString(name, _quoteName); _writer.Write(':'); } @@ -230,7 +230,7 @@ namespace Newtonsoft.Json if (escape) { - WriteEscapedString(name); + WriteEscapedString(name, _quoteName); } else { @@ -364,13 +364,13 @@ namespace Newtonsoft.Json if (value == null) WriteValueInternal(JsonConvert.Null, JsonToken.Null); else - WriteEscapedString(value); + WriteEscapedString(value, true); } - private void WriteEscapedString(string value) + private void WriteEscapedString(string value, bool quote) { EnsureWriteBuffer(); - JavaScriptUtils.WriteEscapedJavaScriptString(_writer, value, _quoteChar, _quoteName, _charEscapeFlags, StringEscapeHandling, ref _writeBuffer); + JavaScriptUtils.WriteEscapedJavaScriptString(_writer, value, _quoteChar, quote, _charEscapeFlags, StringEscapeHandling, ref _writeBuffer); } ///