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();