-Fixed not quoting strings when QuoteName is false

This commit is contained in:
James Newton-King
2013-10-17 09:35:26 +13:00
parent 402e22a165
commit ed50e034a0
2 changed files with 23 additions and 5 deletions
@@ -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()
{
+5 -5
View File
@@ -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);
}
/// <summary>