From 50cca1ec0b80e1dedd513f62317b626a4ce0e935 Mon Sep 17 00:00:00 2001 From: JamesNK Date: Sat, 24 Jan 2009 01:06:35 +0000 Subject: [PATCH] -Fix writing raw JValue tokens --- Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs | 15 +++++++++++++++ Src/Newtonsoft.Json/JsonWriter.cs | 2 +- Src/Newtonsoft.Json/Linq/JValue.cs | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs b/Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs index 60848f70..dd3d7671 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/JObjectTests.cs @@ -359,5 +359,20 @@ Parameter name: arrayIndex")] person = person; } + + [Test] + public void RawChildValues() + { + JObject o = new JObject(); + o["val1"] = JValue.CreateRaw("1"); + o["val2"] = JValue.CreateRaw("1"); + + string json = o.ToString(); + + Assert.AreEqual(@"{ + ""val1"": 1, + ""val2"": 1 +}", json); + } } } diff --git a/Src/Newtonsoft.Json/JsonWriter.cs b/Src/Newtonsoft.Json/JsonWriter.cs index 888dbadd..7734927c 100644 --- a/Src/Newtonsoft.Json/JsonWriter.cs +++ b/Src/Newtonsoft.Json/JsonWriter.cs @@ -647,9 +647,9 @@ namespace Newtonsoft.Json /// The raw JSON to write. public virtual void WriteRawValue(string json) { - WriteRaw(json); // hack. want writer to change state as if a value had been written AutoComplete(JsonToken.Undefined); + WriteRaw(json); } /// diff --git a/Src/Newtonsoft.Json/Linq/JValue.cs b/Src/Newtonsoft.Json/Linq/JValue.cs index 32c18dae..11c71894 100644 --- a/Src/Newtonsoft.Json/Linq/JValue.cs +++ b/Src/Newtonsoft.Json/Linq/JValue.cs @@ -309,7 +309,7 @@ namespace Newtonsoft.Json.Linq }, _value); break; case JsonTokenType.Raw: - writer.WriteRaw(_value.ToString()); + writer.WriteRawValue(_value.ToString()); break; case JsonTokenType.Null: writer.WriteNull();