-Documentation

-Performance
This commit is contained in:
James Newton-King
2012-11-01 17:32:05 +13:00
parent d92b8ceeb5
commit 92ce080f24
14 changed files with 1023 additions and 343 deletions
@@ -0,0 +1,108 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json.Linq;
namespace Newtonsoft.Json.Tests.Documentation
{
public class JsonNetVsWindowsDataJsonTests
{
public void CreatingJson()
{
#if NETFX_CORE
#region CreatingJSON
// Windows.Data.Json
// -----------------
JsonObject jsonObject = new JsonObject
{
{"CPU", JsonValue.CreateStringValue("Intel")},
{
"Drives", new JsonArray
{
JsonValue.CreateStringValue("DVD read/writer"),
JsonValue.CreateStringValue("500 gigabyte hard drive")
}
}
};
string json1 = jsonObject.Stringify();
// LINQ to JSON
// ------------
JObject jObject = new JObject
{
{"CPU", "Intel"},
{
"Drives", new JArray
{
"DVD read/writer",
"500 gigabyte hard drive"
}
}
};
string json2 = jObject.ToString();
#endregion
#endif
}
public void QueryingJson()
{
#if NETFX_CORE
#region QueryingJSON
string json = @"{
'channel': {
'title': 'James Newton-King',
'link': 'http://james.newtonking.com',
'description': 'James Newton-King's blog.',
'item': [
{
'title': 'Json.NET 1.3 + New license + Now on CodePlex',
'description': 'Annoucing the release of Json.NET 1.3, the MIT license and the source being available on CodePlex',
'link': 'http://james.newtonking.com/projects/json-net.aspx',
'category': [
'Json.NET',
'CodePlex'
]
}
]
}
}";
// Windows.Data.Json
// -----------------
JsonObject jsonObject = JsonObject.Parse(json);
string itemTitle1 = jsonObject["channel"].GetObject()["item"].GetArray()[0].GetObject()["title"].GetString();
// LINQ to JSON
// ------------
JObject jObject = JObject.Parse(json);
string itemTitle2 = (string)jObject["channel"]["item"][0]["title"];
#endregion
#endif
}
public void Converting()
{
#if NETFX_CORE
#region Converting
JsonObject jsonObject = new JsonObject
{
{"CPU", JsonValue.CreateStringValue("Intel")},
{"Drives", new JsonArray {
JsonValue.CreateStringValue("DVD read/writer"),
JsonValue.CreateStringValue("500 gigabyte hard drive")
}
}
};
// convert Windows.Data.Json to LINQ to JSON
JObject o = JObject.FromObject(jsonObject);
// convert LINQ to JSON to Windows.Data.Json
JArray a = (JArray)o["Drives"];
JsonArray jsonArray = a.ToObject<JsonArray>();
#endregion
#endif
}
}
}
@@ -713,6 +713,7 @@ _____'propertyName': NaN
jsonWriter.WriteValue(data);
jsonWriter.WriteValue((object)data);
jsonWriter.WriteValue((byte[])null);
jsonWriter.WriteValue((Uri)null);
jsonWriter.WriteEndArray();
}
@@ -720,6 +721,7 @@ _____'propertyName': NaN
""SGVsbG8gd29ybGQu"",
""SGVsbG8gd29ybGQu"",
""SGVsbG8gd29ybGQu"",
null,
null
]";
string result = sb.ToString();
+10 -12
View File
@@ -64,8 +64,8 @@ namespace Newtonsoft.Json.Tests
[TestFixture]
public class PerformanceTests : TestFixtureBase
{
private const int Iterations = 100;
//private const int Iterations = 5000;
//private const int Iterations = 100;
private const int Iterations = 5000;
#region Data
@@ -122,21 +122,19 @@ namespace Newtonsoft.Json.Tests
TestClass test = CreateSerializationObject();
SerializeTests(test);
Deserialize();
}
private void SerializeTests(object value)
{
BenchmarkSerializeMethod(SerializeMethod.DataContractSerializer, value);
BenchmarkSerializeMethod(SerializeMethod.BinaryFormatter, value);
BenchmarkSerializeMethod(SerializeMethod.JavaScriptSerializer, value);
BenchmarkSerializeMethod(SerializeMethod.DataContractJsonSerializer, value);
BenchmarkSerializeMethod(SerializeMethod.JsonNet, value);
BenchmarkSerializeMethod(SerializeMethod.JsonNetLinq, value);
//BenchmarkSerializeMethod(SerializeMethod.DataContractSerializer, value);
//BenchmarkSerializeMethod(SerializeMethod.BinaryFormatter, value);
//BenchmarkSerializeMethod(SerializeMethod.JavaScriptSerializer, value);
//BenchmarkSerializeMethod(SerializeMethod.DataContractJsonSerializer, value);
//BenchmarkSerializeMethod(SerializeMethod.JsonNet, value);
//BenchmarkSerializeMethod(SerializeMethod.JsonNetLinq, value);
BenchmarkSerializeMethod(SerializeMethod.JsonNetManual, value);
BenchmarkSerializeMethod(SerializeMethod.JsonNetWithIsoConverter, value);
BenchmarkSerializeMethod(SerializeMethod.JsonNetBinary, value);
//BenchmarkSerializeMethod(SerializeMethod.JsonNetWithIsoConverter, value);
//BenchmarkSerializeMethod(SerializeMethod.JsonNetBinary, value);
}
[Test]
@@ -76,5 +76,5 @@ using System.Security;
// by using the '*' as shown below:
[assembly: AssemblyVersion("4.5.0.0")]
#if !PocketPC
[assembly: AssemblyFileVersion("4.5.10.15431")]
[assembly: AssemblyFileVersion("4.5.10.15501")]
#endif
+44 -33
View File
@@ -148,7 +148,7 @@ namespace Newtonsoft.Json
/// </summary>
public override void WriteStartObject()
{
base.WriteStartObject();
InternalWriteStart(JsonToken.StartObject, JsonContainerType.Object);
_writer.Write("{");
}
@@ -158,7 +158,7 @@ namespace Newtonsoft.Json
/// </summary>
public override void WriteStartArray()
{
base.WriteStartArray();
InternalWriteStart(JsonToken.StartArray, JsonContainerType.Array);
_writer.Write("[");
}
@@ -169,7 +169,7 @@ namespace Newtonsoft.Json
/// <param name="name">The name of the constructor.</param>
public override void WriteStartConstructor(string name)
{
base.WriteStartConstructor(name);
InternalWriteStart(JsonToken.StartConstructor, JsonContainerType.Constructor);
_writer.Write("new ");
_writer.Write(name);
@@ -204,7 +204,7 @@ namespace Newtonsoft.Json
/// <param name="name">The name of the property.</param>
public override void WritePropertyName(string name)
{
base.WritePropertyName(name);
InternalWritePropertyName(name);
JavaScriptUtils.WriteEscapedJavaScriptString(_writer, name, _quoteChar, _quoteName);
@@ -259,7 +259,7 @@ namespace Newtonsoft.Json
/// </summary>
public override void WriteNull()
{
base.WriteNull();
InternalWriteNull();
WriteValueInternal(JsonConvert.Null, JsonToken.Null);
}
@@ -268,7 +268,7 @@ namespace Newtonsoft.Json
/// </summary>
public override void WriteUndefined()
{
base.WriteUndefined();
InternalWriteUndefined();
WriteValueInternal(JsonConvert.Undefined, JsonToken.Undefined);
}
@@ -278,7 +278,7 @@ namespace Newtonsoft.Json
/// <param name="json">The raw JSON to write.</param>
public override void WriteRaw(string json)
{
base.WriteRaw(json);
InternalWriteRaw();
_writer.Write(json);
}
@@ -289,7 +289,8 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="String"/> value to write.</param>
public override void WriteValue(string value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.String);
if (value == null)
WriteValueInternal(JsonConvert.Null, JsonToken.Null);
else
@@ -302,7 +303,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Int32"/> value to write.</param>
public override void WriteValue(int value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Integer);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Integer);
}
@@ -313,7 +314,7 @@ namespace Newtonsoft.Json
[CLSCompliant(false)]
public override void WriteValue(uint value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Integer);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Integer);
}
@@ -323,7 +324,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Int64"/> value to write.</param>
public override void WriteValue(long value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Integer);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Integer);
}
@@ -334,7 +335,7 @@ namespace Newtonsoft.Json
[CLSCompliant(false)]
public override void WriteValue(ulong value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Integer);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Integer);
}
@@ -344,7 +345,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Single"/> value to write.</param>
public override void WriteValue(float value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Float);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Float);
}
@@ -354,7 +355,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Double"/> value to write.</param>
public override void WriteValue(double value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Float);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Float);
}
@@ -364,7 +365,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Boolean"/> value to write.</param>
public override void WriteValue(bool value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Boolean);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Boolean);
}
@@ -374,7 +375,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Int16"/> value to write.</param>
public override void WriteValue(short value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Integer);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Integer);
}
@@ -385,7 +386,7 @@ namespace Newtonsoft.Json
[CLSCompliant(false)]
public override void WriteValue(ushort value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Integer);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Integer);
}
@@ -395,8 +396,8 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Char"/> value to write.</param>
public override void WriteValue(char value)
{
base.WriteValue(value);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Integer);
InternalWriteValue(JsonToken.String);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.String);
}
/// <summary>
@@ -405,7 +406,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Byte"/> value to write.</param>
public override void WriteValue(byte value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Integer);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Integer);
}
@@ -416,7 +417,7 @@ namespace Newtonsoft.Json
[CLSCompliant(false)]
public override void WriteValue(sbyte value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Integer);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Integer);
}
@@ -426,7 +427,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Decimal"/> value to write.</param>
public override void WriteValue(decimal value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Float);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.Float);
}
@@ -436,7 +437,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="DateTime"/> value to write.</param>
public override void WriteValue(DateTime value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Date);
value = JsonConvert.EnsureDateTime(value, DateTimeZoneHandling);
JsonConvert.WriteDateTimeString(_writer, value, DateFormatHandling);
}
@@ -447,10 +448,13 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="T:Byte[]"/> value to write.</param>
public override void WriteValue(byte[] value)
{
base.WriteValue(value);
if (value != null)
if (value == null)
{
WriteNull();
}
else
{
InternalWriteValue(JsonToken.Bytes);
_writer.Write(_quoteChar);
Base64Encoder.Encode(value, 0, value.Length);
Base64Encoder.Flush();
@@ -465,7 +469,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="DateTimeOffset"/> value to write.</param>
public override void WriteValue(DateTimeOffset value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.Date);
WriteValueInternal(JsonConvert.ToString(value, DateFormatHandling), JsonToken.Date);
}
#endif
@@ -476,7 +480,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Guid"/> value to write.</param>
public override void WriteValue(Guid value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.String);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.String);
}
@@ -486,7 +490,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="TimeSpan"/> value to write.</param>
public override void WriteValue(TimeSpan value)
{
base.WriteValue(value);
InternalWriteValue(JsonToken.String);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.String);
}
@@ -496,8 +500,15 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Uri"/> value to write.</param>
public override void WriteValue(Uri value)
{
base.WriteValue(value);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.String);
if (value == null)
{
WriteNull();
}
else
{
InternalWriteValue(JsonToken.String);
WriteValueInternal(JsonConvert.ToString(value), JsonToken.String);
}
}
#endregion
@@ -507,7 +518,7 @@ namespace Newtonsoft.Json
/// <param name="text">Text to place inside the comment.</param>
public override void WriteComment(string text)
{
base.WriteComment(text);
InternalWriteComment();
_writer.Write("/*");
_writer.Write(text);
@@ -520,7 +531,7 @@ namespace Newtonsoft.Json
/// <param name="ws">The string of white space characters.</param>
public override void WriteWhitespace(string ws)
{
base.WriteWhitespace(ws);
InternalWriteWhitespace(ws);
_writer.Write(ws);
}
+78 -88
View File
@@ -54,7 +54,6 @@ namespace Newtonsoft.Json
Array,
ConstructorStart,
Constructor,
Bytes,
Closed,
Error
}
@@ -69,7 +68,7 @@ namespace Newtonsoft.Json
/* StartObject */new[]{ State.ObjectStart, State.ObjectStart, State.Error, State.Error, State.ObjectStart, State.ObjectStart, State.ObjectStart, State.ObjectStart, State.Error, State.Error },
/* StartArray */new[]{ State.ArrayStart, State.ArrayStart, State.Error, State.Error, State.ArrayStart, State.ArrayStart, State.ArrayStart, State.ArrayStart, State.Error, State.Error },
/* StartConstructor */new[]{ State.ConstructorStart, State.ConstructorStart, State.Error, State.Error, State.ConstructorStart, State.ConstructorStart, State.ConstructorStart, State.ConstructorStart, State.Error, State.Error },
/* StartProperty */new[]{ State.Property, State.Error, State.Property, State.Property, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error },
/* Property */new[]{ State.Property, State.Error, State.Property, State.Property, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error },
/* Comment */new[]{ State.Start, State.Property, State.ObjectStart, State.Object, State.ArrayStart, State.Array, State.Constructor, State.Constructor, State.Error, State.Error },
/* Raw */new[]{ State.Start, State.Property, State.ObjectStart, State.Object, State.ArrayStart, State.Array, State.Constructor, State.Constructor, State.Error, State.Error },
/* Value (this will be copied) */new[]{ State.Start, State.Object, State.Error, State.Error, State.Array, State.Array, State.Constructor, State.Constructor, State.Error, State.Error }
@@ -157,7 +156,7 @@ namespace Newtonsoft.Json
return JsonPosition.BuildPath(positions);
}
}
/// <summary>
/// Gets the state of the writer.
/// </summary>
@@ -316,10 +315,15 @@ namespace Newtonsoft.Json
/// Writes the beginning of a Json object.
/// </summary>
public virtual void WriteStartObject()
{
InternalWriteStart(JsonToken.StartObject, JsonContainerType.Object);
}
internal void InternalWriteStart(JsonToken token, JsonContainerType container)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.StartObject);
Push(JsonContainerType.Object);
AutoComplete(token);
Push(container);
}
/// <summary>
@@ -327,7 +331,7 @@ namespace Newtonsoft.Json
/// </summary>
public virtual void WriteEndObject()
{
AutoCompleteClose(JsonContainerType.Object);
InternalWriteEnd(JsonContainerType.Object);
}
/// <summary>
@@ -335,9 +339,7 @@ namespace Newtonsoft.Json
/// </summary>
public virtual void WriteStartArray()
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.StartArray);
Push(JsonContainerType.Array);
InternalWriteStart(JsonToken.StartArray, JsonContainerType.Array);
}
/// <summary>
@@ -345,7 +347,7 @@ namespace Newtonsoft.Json
/// </summary>
public virtual void WriteEndArray()
{
AutoCompleteClose(JsonContainerType.Array);
InternalWriteEnd(JsonContainerType.Array);
}
/// <summary>
@@ -354,9 +356,7 @@ namespace Newtonsoft.Json
/// <param name="name">The name of the constructor.</param>
public virtual void WriteStartConstructor(string name)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.StartConstructor);
Push(JsonContainerType.Constructor);
InternalWriteStart(JsonToken.StartConstructor, JsonContainerType.Constructor);
}
/// <summary>
@@ -364,7 +364,12 @@ namespace Newtonsoft.Json
/// </summary>
public virtual void WriteEndConstructor()
{
AutoCompleteClose(JsonContainerType.Constructor);
InternalWriteEnd(JsonContainerType.Constructor);
}
internal void InternalWriteEnd(JsonContainerType container)
{
AutoCompleteClose(container);
}
/// <summary>
@@ -372,6 +377,11 @@ namespace Newtonsoft.Json
/// </summary>
/// <param name="name">The name of the property.</param>
public virtual void WritePropertyName(string name)
{
InternalWritePropertyName(name);
}
internal void InternalWritePropertyName(string name)
{
_currentPosition.PropertyName = name;
AutoComplete(JsonToken.PropertyName);
@@ -564,21 +574,6 @@ namespace Newtonsoft.Json
}
}
private JsonContainerType GetTypeForCloseToken(JsonToken token)
{
switch (token)
{
case JsonToken.EndObject:
return JsonContainerType.Object;
case JsonToken.EndArray:
return JsonContainerType.Array;
case JsonToken.EndConstructor:
return JsonContainerType.Constructor;
default:
throw JsonWriterException.Create(this, "No type for token: " + token, null);
}
}
private JsonToken GetCloseTokenForType(JsonContainerType type)
{
switch (type)
@@ -699,22 +694,16 @@ namespace Newtonsoft.Json
{
WriteValueDelimiter();
}
else if (_currentState == State.Property)
{
if (_formatting == Formatting.Indented)
WriteIndentSpace();
}
if (_formatting == Formatting.Indented)
{
WriteState writeState = WriteState;
if (_currentState == State.Property)
WriteIndentSpace();
// don't indent a property when it is the first token to be written (i.e. at the start)
if ((tokenBeingWritten == JsonToken.PropertyName && writeState != WriteState.Start) ||
writeState == WriteState.Array || writeState == WriteState.Constructor)
{
if ((_currentState == State.Array || _currentState == State.ArrayStart || _currentState == State.Constructor || _currentState == State.ConstructorStart)
|| (tokenBeingWritten == JsonToken.PropertyName && _currentState != State.Start))
WriteIndent();
}
}
_currentState = newState;
@@ -725,6 +714,11 @@ namespace Newtonsoft.Json
/// Writes a null value.
/// </summary>
public virtual void WriteNull()
{
InternalWriteNull();
}
internal void InternalWriteNull()
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Null);
@@ -734,6 +728,11 @@ namespace Newtonsoft.Json
/// Writes an undefined value.
/// </summary>
public virtual void WriteUndefined()
{
InternalWriteUndefined();
}
internal void InternalWriteUndefined()
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Undefined);
@@ -744,6 +743,11 @@ namespace Newtonsoft.Json
/// </summary>
/// <param name="json">The raw JSON to write.</param>
public virtual void WriteRaw(string json)
{
InternalWriteRaw();
}
internal void InternalWriteRaw()
{
}
@@ -764,9 +768,14 @@ namespace Newtonsoft.Json
/// </summary>
/// <param name="value">The <see cref="String"/> value to write.</param>
public virtual void WriteValue(string value)
{
InternalWriteValue(JsonToken.String);
}
internal void InternalWriteValue(JsonToken token)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.String);
AutoComplete(token);
}
/// <summary>
@@ -775,8 +784,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Int32"/> value to write.</param>
public virtual void WriteValue(int value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Integer);
InternalWriteValue(JsonToken.Integer);
}
/// <summary>
@@ -786,8 +794,7 @@ namespace Newtonsoft.Json
[CLSCompliant(false)]
public virtual void WriteValue(uint value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Integer);
InternalWriteValue(JsonToken.Integer);
}
/// <summary>
@@ -796,8 +803,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Int64"/> value to write.</param>
public virtual void WriteValue(long value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Integer);
InternalWriteValue(JsonToken.Integer);
}
/// <summary>
@@ -807,8 +813,7 @@ namespace Newtonsoft.Json
[CLSCompliant(false)]
public virtual void WriteValue(ulong value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Integer);
InternalWriteValue(JsonToken.Integer);
}
/// <summary>
@@ -817,8 +822,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Single"/> value to write.</param>
public virtual void WriteValue(float value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Float);
InternalWriteValue(JsonToken.Float);
}
/// <summary>
@@ -827,8 +831,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Double"/> value to write.</param>
public virtual void WriteValue(double value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Float);
InternalWriteValue(JsonToken.Float);
}
/// <summary>
@@ -837,8 +840,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Boolean"/> value to write.</param>
public virtual void WriteValue(bool value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Boolean);
InternalWriteValue(JsonToken.Boolean);
}
/// <summary>
@@ -847,8 +849,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Int16"/> value to write.</param>
public virtual void WriteValue(short value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Integer);
InternalWriteValue(JsonToken.Integer);
}
/// <summary>
@@ -858,8 +859,7 @@ namespace Newtonsoft.Json
[CLSCompliant(false)]
public virtual void WriteValue(ushort value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Integer);
InternalWriteValue(JsonToken.Integer);
}
/// <summary>
@@ -868,8 +868,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Char"/> value to write.</param>
public virtual void WriteValue(char value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.String);
InternalWriteValue(JsonToken.String);
}
/// <summary>
@@ -878,8 +877,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Byte"/> value to write.</param>
public virtual void WriteValue(byte value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Integer);
InternalWriteValue(JsonToken.Integer);
}
/// <summary>
@@ -889,8 +887,7 @@ namespace Newtonsoft.Json
[CLSCompliant(false)]
public virtual void WriteValue(sbyte value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Integer);
InternalWriteValue(JsonToken.Integer);
}
/// <summary>
@@ -899,8 +896,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Decimal"/> value to write.</param>
public virtual void WriteValue(decimal value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Float);
InternalWriteValue(JsonToken.Float);
}
/// <summary>
@@ -909,8 +905,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="DateTime"/> value to write.</param>
public virtual void WriteValue(DateTime value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Date);
InternalWriteValue(JsonToken.Date);
}
#if !PocketPC && !NET20
@@ -920,8 +915,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="DateTimeOffset"/> value to write.</param>
public virtual void WriteValue(DateTimeOffset value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Date);
InternalWriteValue(JsonToken.Date);
}
#endif
@@ -931,8 +925,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="Guid"/> value to write.</param>
public virtual void WriteValue(Guid value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.String);
InternalWriteValue(JsonToken.String);
}
/// <summary>
@@ -941,8 +934,7 @@ namespace Newtonsoft.Json
/// <param name="value">The <see cref="TimeSpan"/> value to write.</param>
public virtual void WriteValue(TimeSpan value)
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.String);
InternalWriteValue(JsonToken.String);
}
/// <summary>
@@ -1162,14 +1154,9 @@ namespace Newtonsoft.Json
public virtual void WriteValue(byte[] value)
{
if (value == null)
{
WriteNull();
}
else
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.Bytes);
}
InternalWriteValue(JsonToken.Bytes);
}
/// <summary>
@@ -1179,14 +1166,9 @@ namespace Newtonsoft.Json
public virtual void WriteValue(Uri value)
{
if (value == null)
{
WriteNull();
}
else
{
UpdateScopeWithFinishedValue();
AutoComplete(JsonToken.String);
}
InternalWriteValue(JsonToken.String);
}
/// <summary>
@@ -1297,7 +1279,11 @@ namespace Newtonsoft.Json
/// <param name="text">Text to place inside the comment.</param>
public virtual void WriteComment(string text)
{
UpdateScopeWithFinishedValue();
InternalWriteComment();
}
internal void InternalWriteComment()
{
AutoComplete(JsonToken.Comment);
}
@@ -1306,6 +1292,11 @@ namespace Newtonsoft.Json
/// </summary>
/// <param name="ws">The string of white space characters.</param>
public virtual void WriteWhitespace(string ws)
{
InternalWriteWhitespace(ws);
}
internal void InternalWriteWhitespace(string ws)
{
if (ws != null)
{
@@ -1314,7 +1305,6 @@ namespace Newtonsoft.Json
}
}
void IDisposable.Dispose()
{
Dispose(true);
@@ -90,7 +90,7 @@ using System.Security;
// by using the '*' as shown below:
[assembly: AssemblyVersion("4.5.0.0")]
#if !PocketPC
[assembly: AssemblyFileVersion("4.5.10.15431")]
[assembly: AssemblyFileVersion("4.5.10.15501")]
#endif
[assembly: CLSCompliant(true)]