public void ValueFormatting() { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jsonWriter = new JsonWriter(sw)) { jsonWriter.WriteStartArray(); jsonWriter.WriteValue('@'); jsonWriter.WriteValue("\r\n\t\f\b?{\\r\\n\"\'"); jsonWriter.WriteValue(true); jsonWriter.WriteValue(10); jsonWriter.WriteValue(10.99); jsonWriter.WriteValue(0.99); jsonWriter.WriteValue(0.000000000000000001d); jsonWriter.WriteValue(0.000000000000000001m); jsonWriter.WriteValue(null); jsonWriter.WriteValue("This is a string."); jsonWriter.WriteNull(); jsonWriter.WriteUndefined(); jsonWriter.WriteEndArray(); } const string expected = @"[""@"",""\r\n\t\f\b?{\\r\\n\""'"",true,10,10.99,0.99,1E-18,0.000000000000000001,,""This is a string."",null,undefined]"; string result = sb.ToString(); Console.WriteLine("ValueFormatting"); Console.WriteLine(result); Assert.AreEqual(expected, result); }
public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { switch (_valueType) { case JTokenType.Comment: writer.WriteComment(_value.ToString()); break; case JTokenType.Raw: writer.WriteRawValue((_value == null) ? null : _value.ToString()); break; case JTokenType.Null: writer.WriteNull(); break; case JTokenType.Undefined: writer.WriteUndefined(); break; default: { JsonConverter matchingConverter; if (_value == null || (matchingConverter = JsonSerializer.GetMatchingConverter(converters, _value.GetType())) == null) { switch (_valueType) { case JTokenType.Integer: writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture)); break; case JTokenType.Float: writer.WriteValue(Convert.ToDouble(_value, CultureInfo.InvariantCulture)); break; case JTokenType.String: writer.WriteValue((_value == null) ? null : _value.ToString()); break; case JTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(_value, CultureInfo.InvariantCulture)); break; case JTokenType.Date: if (_value is DateTimeOffset) { writer.WriteValue((DateTimeOffset)_value); } else { writer.WriteValue(Convert.ToDateTime(_value, CultureInfo.InvariantCulture)); } break; case JTokenType.Bytes: writer.WriteValue((byte[])_value); break; case JTokenType.Guid: case JTokenType.Uri: case JTokenType.TimeSpan: writer.WriteValue((_value == null) ? null : _value.ToString()); break; default: throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type."); } } else { matchingConverter.WriteJson(writer, _value, new JsonSerializer()); } break; } } }
/// <summary> /// Writes this token to a <see cref="JsonWriter"/>. /// </summary> /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param> /// <param name="converters">A collection of <see cref="JsonConverter"/>s which will be used when writing the token.</param> public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { if (converters != null && converters.Length > 0 && _value != null) { JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter(converters, _value.GetType()); if (matchingConverter != null && matchingConverter.CanWrite) { matchingConverter.WriteJson(writer, _value, JsonSerializer.CreateDefault()); return; } } switch (_valueType) { case JTokenType.Comment: writer.WriteComment(_value?.ToString()); return; case JTokenType.Raw: writer.WriteRawValue(_value?.ToString()); return; case JTokenType.Null: writer.WriteNull(); return; case JTokenType.Undefined: writer.WriteUndefined(); return; case JTokenType.Integer: if (_value is int) { writer.WriteValue((int)_value); } else if (_value is long) { writer.WriteValue((long)_value); } else if (_value is ulong) { writer.WriteValue((ulong)_value); } #if HAVE_BIG_INTEGER else if (_value is BigInteger) { writer.WriteValue((BigInteger)_value); } #endif else { writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture)); } return; case JTokenType.Float: if (_value is decimal) { writer.WriteValue((decimal)_value); } else if (_value is double) { writer.WriteValue((double)_value); } else if (_value is float) { writer.WriteValue((float)_value); } else { writer.WriteValue(Convert.ToDouble(_value, CultureInfo.InvariantCulture)); } return; case JTokenType.String: writer.WriteValue(_value?.ToString()); return; case JTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Date: #if HAVE_DATE_TIME_OFFSET if (_value is DateTimeOffset) { writer.WriteValue((DateTimeOffset)_value); } else #endif { writer.WriteValue(Convert.ToDateTime(_value, CultureInfo.InvariantCulture)); } return; case JTokenType.Bytes: writer.WriteValue((byte[])_value); return; case JTokenType.Guid: writer.WriteValue((_value != null) ? (Guid?)_value : null); return; case JTokenType.TimeSpan: writer.WriteValue((_value != null) ? (TimeSpan?)_value : null); return; case JTokenType.Uri: writer.WriteValue((Uri)_value); return; } throw MiscellaneousUtils.CreateArgumentOutOfRangeException(nameof(Type), _valueType, "Unexpected token type."); }
public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { JTokenType valueType = this._valueType; switch (valueType) { case JTokenType.Null: writer.WriteNull(); return; case JTokenType.Undefined: writer.WriteUndefined(); return; default: { if (valueType == JTokenType.Comment) { writer.WriteComment(this._value.ToString()); return; } JsonConverter matchingConverter; if (this._value != null && (matchingConverter = JsonSerializer.GetMatchingConverter(converters, this._value.GetType())) != null) { matchingConverter.WriteJson(writer, this._value, new JsonSerializer()); return; } switch (this._valueType) { case JTokenType.Integer: writer.WriteValue(Convert.ToInt64(this._value, CultureInfo.InvariantCulture)); return; case JTokenType.Float: writer.WriteValue(Convert.ToDouble(this._value, CultureInfo.InvariantCulture)); return; case JTokenType.String: writer.WriteValue((this._value == null) ? null : this._value.ToString()); return; case JTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(this._value, CultureInfo.InvariantCulture)); return; case JTokenType.Date: if (this._value is DateTimeOffset) { writer.WriteValue((DateTimeOffset)this._value); } else { writer.WriteValue(Convert.ToDateTime(this._value, CultureInfo.InvariantCulture)); } return; case JTokenType.Bytes: writer.WriteValue((byte[])this._value); return; case JTokenType.Guid: case JTokenType.Uri: case JTokenType.TimeSpan: writer.WriteValue((this._value == null) ? null : this._value.ToString()); return; } throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", this._valueType, "Unexpected token type."); } case JTokenType.Raw: writer.WriteRawValue((this._value == null) ? null : this._value.ToString()); return; } }
// Token: 0x0600141E RID: 5150 RVA: 0x0006A834 File Offset: 0x00068A34 public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { if (converters != null && converters.Length != 0 && this._value != null) { JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter(converters, this._value.GetType()); if (matchingConverter != null && matchingConverter.CanWrite) { matchingConverter.WriteJson(writer, this._value, JsonSerializer.CreateDefault()); return; } } switch (this._valueType) { case JTokenType.Comment: { object value = this._value; writer.WriteComment((value != null) ? value.ToString() : null); return; } case JTokenType.Integer: { object value2 = this._value; if (value2 is int) { int value3 = (int)value2; writer.WriteValue(value3); return; } value2 = this._value; if (value2 is long) { long value4 = (long)value2; writer.WriteValue(value4); return; } value2 = this._value; if (value2 is ulong) { ulong value5 = (ulong)value2; writer.WriteValue(value5); return; } value2 = this._value; if (value2 is System.Numerics.BigInteger) { System.Numerics.BigInteger bigInteger = (System.Numerics.BigInteger)value2; writer.WriteValue(bigInteger); return; } writer.WriteValue(Convert.ToInt64(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.Float: { object value2 = this._value; if (value2 is decimal) { decimal value6 = (decimal)value2; writer.WriteValue(value6); return; } value2 = this._value; if (value2 is double) { double value7 = (double)value2; writer.WriteValue(value7); return; } value2 = this._value; if (value2 is float) { float value8 = (float)value2; writer.WriteValue(value8); return; } writer.WriteValue(Convert.ToDouble(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.String: { object value9 = this._value; writer.WriteValue((value9 != null) ? value9.ToString() : null); return; } case JTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(this._value, CultureInfo.InvariantCulture)); return; case JTokenType.Null: writer.WriteNull(); return; case JTokenType.Undefined: writer.WriteUndefined(); return; case JTokenType.Date: { object value2 = this._value; if (value2 is DateTimeOffset) { DateTimeOffset value10 = (DateTimeOffset)value2; writer.WriteValue(value10); return; } writer.WriteValue(Convert.ToDateTime(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.Raw: { object value11 = this._value; writer.WriteRawValue((value11 != null) ? value11.ToString() : null); return; } case JTokenType.Bytes: writer.WriteValue((byte[])this._value); return; case JTokenType.Guid: writer.WriteValue((this._value != null) ? ((Guid?)this._value) : null); return; case JTokenType.Uri: writer.WriteValue((Uri)this._value); return; case JTokenType.TimeSpan: writer.WriteValue((this._value != null) ? ((TimeSpan?)this._value) : null); return; default: throw MiscellaneousUtils.CreateArgumentOutOfRangeException("Type", this._valueType, "Unexpected token type."); } }
public override void WriteUndefined() { _textWriter.WriteUndefined(); _innerWriter.WriteUndefined(); base.WriteUndefined(); }
public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { string str; string str1; string str2; JTokenType jTokenType = this._valueType; switch (jTokenType) { case JTokenType.Null: { writer.WriteNull(); return; } case JTokenType.Undefined: { writer.WriteUndefined(); return; } case JTokenType.Raw: { JsonWriter jsonWriter = writer; if (this._value == null) { str2 = null; } else { str2 = this._value.ToString(); } jsonWriter.WriteRawValue(str2); return; } default: { if (jTokenType == JTokenType.Comment) { break; } else { goto Label0; } } } writer.WriteComment(this._value.ToString()); return; Label0: if (this._value != null) { JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter(converters, this._value.GetType()); JsonConverter jsonConverter = matchingConverter; if (matchingConverter != null) { jsonConverter.WriteJson(writer, this._value, new JsonSerializer()); return; } } switch (this._valueType) { case JTokenType.Integer: { writer.WriteValue(Convert.ToInt64(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.Float: { writer.WriteValue(Convert.ToDouble(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.String: { JsonWriter jsonWriter1 = writer; if (this._value == null) { str = null; } else { str = this._value.ToString(); } jsonWriter1.WriteValue(str); return; } case JTokenType.Boolean: { writer.WriteValue(Convert.ToBoolean(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.Null: case JTokenType.Undefined: case JTokenType.Raw: { throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", this._valueType, "Unexpected token type."); } case JTokenType.Date: { if (!(this._value is DateTimeOffset)) { writer.WriteValue(Convert.ToDateTime(this._value, CultureInfo.InvariantCulture)); } else { writer.WriteValue((DateTimeOffset)this._value); } return; } case JTokenType.Bytes: { writer.WriteValue((byte[])this._value); return; } case JTokenType.Guid: case JTokenType.Uri: case JTokenType.TimeSpan: { JsonWriter jsonWriter2 = writer; if (this._value == null) { str1 = null; } else { str1 = this._value.ToString(); } jsonWriter2.WriteValue(str1); return; } default: { throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", this._valueType, "Unexpected token type."); } } }
/// <inheritdoc /> public override void WriteUndefined() => _writer.WriteUndefined();
public override void WriteTo(JsonWriter writer) { switch (_valueType) { case JsonTokenType.Comment: writer.WriteComment(_value.ToString()); break; case JsonTokenType.Integer: writer.WriteValue(Convert.ToInt64(_value)); break; case JsonTokenType.Float: writer.WriteValue(Convert.ToDouble(_value)); break; case JsonTokenType.String: writer.WriteValue(_value.ToString()); break; case JsonTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(_value)); break; case JsonTokenType.Null: writer.WriteNull(); break; case JsonTokenType.Undefined: writer.WriteUndefined(); break; case JsonTokenType.Date: writer.WriteValue(Convert.ToDateTime(_value)); break; default: throw new ArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type."); } }
public override void WriteTo(JsonWriter writer, JsonConverterCollection converters) { switch (_valueType) { case JTokenType.Comment: writer.WriteComment(_value.ToString()); return; case JTokenType.Raw: writer.WriteRawValue((_value != null) ? _value.ToString() : null); return; case JTokenType.Null: writer.WriteNull(); return; case JTokenType.Undefined: writer.WriteUndefined(); return; } if (_value != null) { Type typeToFind = _value.GetType(); // If we are using the default converters we will try to avoid repeatedly check the same types as // GetMatchingConverter is a costly call with a very low probability to hit (less than 1% in real scenarios). JsonConverter matchingConverter = JsonConverterCache.GetMatchingConverter(converters, typeToFind); if (matchingConverter != null) { matchingConverter.WriteJson(writer, _value, JsonExtensions.CreateDefaultJsonSerializer()); return; } } switch (_valueType) { case JTokenType.Integer: writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Float: if (_value is decimal) { writer.WriteValue((decimal)_value); return; } if (_value is float) { writer.WriteValue((float)_value); return; } writer.WriteValue(Convert.ToDouble(_value, CultureInfo.InvariantCulture)); return; case JTokenType.String: writer.WriteValue((_value != null) ? _value.ToString() : null); return; case JTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Date: #if !PocketPC && !NET20 if (_value is DateTimeOffset) { writer.WriteValue((DateTimeOffset)_value); } else #endif writer.WriteValue(Convert.ToDateTime(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Bytes: writer.WriteValue((byte[])_value); return; case JTokenType.Guid: case JTokenType.Uri: case JTokenType.TimeSpan: writer.WriteValue((_value != null) ? _value.ToString() : null); return; } throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type."); }
public void JsonReaderToJsonWriter(JsonReader reader, JsonWriter writer) { do { switch (reader.TokenType) { case JsonToken.None: break; case JsonToken.StartObject: writer.WriteStartObject(); break; case JsonToken.StartArray: writer.WriteStartArray(); break; case JsonToken.PropertyName: string propertyName = reader.Value.ToString(); writer.WritePropertyName(ConvertPropertyName(propertyName)); break; case JsonToken.Comment: writer.WriteComment((reader.Value != null) ? reader.Value.ToString() : null); break; case JsonToken.Integer: writer.WriteValue(Convert.ToInt64(reader.Value, CultureInfo.InvariantCulture)); break; case JsonToken.Float: object value = reader.Value; if (value is decimal) { writer.WriteValue((decimal)value); } else if (value is double) { writer.WriteValue((double)value); } else if (value is float) { writer.WriteValue((float)value); } else { writer.WriteValue(Convert.ToDouble(value, CultureInfo.InvariantCulture)); } break; case JsonToken.String: writer.WriteValue(reader.Value.ToString()); break; case JsonToken.Boolean: writer.WriteValue(Convert.ToBoolean(reader.Value, CultureInfo.InvariantCulture)); break; case JsonToken.Null: if (this.PropertyNullValueReplaceValue != null) { writer.WriteValue(this.PropertyNullValueReplaceValue); } else { writer.WriteNull(); } break; case JsonToken.Undefined: writer.WriteUndefined(); break; case JsonToken.EndObject: writer.WriteEndObject(); break; case JsonToken.EndArray: writer.WriteEndArray(); break; case JsonToken.EndConstructor: writer.WriteEndConstructor(); break; case JsonToken.Date: if (reader.Value is DateTimeOffset) { writer.WriteValue(Convert.ToDateTime(reader.Value).ToString(DateTimeFormat)); } else { writer.WriteValue(Convert.ToDateTime(reader.Value).ToString(DateTimeFormat)); } break; case JsonToken.Raw: writer.WriteRawValue((reader.Value != null) ? reader.Value.ToString() : null); break; case JsonToken.Bytes: if (reader.Value is Guid) { writer.WriteValue((Guid)reader.Value); } else { writer.WriteValue((byte[])reader.Value); } break; } } while (reader.Read()); }
/// <summary> /// Writes this token to a <see cref="T:Newtonsoft.Json.JsonWriter" />. /// </summary> /// <param name="writer">A <see cref="T:Newtonsoft.Json.JsonWriter" /> into which this method will write.</param> /// <param name="converters">A collection of <see cref="T:Newtonsoft.Json.JsonConverter" /> which will be used when writing the token.</param> public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { if (converters != null && converters.Length != 0 && this._value != null) { JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter((IList <JsonConverter>)converters, this._value.GetType()); if (matchingConverter != null && matchingConverter.CanWrite) { matchingConverter.WriteJson(writer, this._value, JsonSerializer.CreateDefault()); return; } } switch (this._valueType) { case JTokenType.Comment: writer.WriteComment(this._value != null ? this._value.ToString() : (string)null); break; case JTokenType.Integer: if (this._value is int) { writer.WriteValue((int)this._value); break; } if (this._value is long) { writer.WriteValue((long)this._value); break; } if (this._value is ulong) { writer.WriteValue((ulong)this._value); break; } writer.WriteValue(Convert.ToInt64(this._value, (IFormatProvider)CultureInfo.InvariantCulture)); break; case JTokenType.Float: if (this._value is Decimal) { writer.WriteValue((Decimal)this._value); break; } if (this._value is double) { writer.WriteValue((double)this._value); break; } if (this._value is float) { writer.WriteValue((float)this._value); break; } writer.WriteValue(Convert.ToDouble(this._value, (IFormatProvider)CultureInfo.InvariantCulture)); break; case JTokenType.String: writer.WriteValue(this._value != null ? this._value.ToString() : (string)null); break; case JTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(this._value, (IFormatProvider)CultureInfo.InvariantCulture)); break; case JTokenType.Null: writer.WriteNull(); break; case JTokenType.Undefined: writer.WriteUndefined(); break; case JTokenType.Date: if (this._value is DateTimeOffset) { writer.WriteValue((DateTimeOffset)this._value); break; } writer.WriteValue(Convert.ToDateTime(this._value, (IFormatProvider)CultureInfo.InvariantCulture)); break; case JTokenType.Raw: writer.WriteRawValue(this._value != null ? this._value.ToString() : (string)null); break; case JTokenType.Bytes: writer.WriteValue((byte[])this._value); break; case JTokenType.Guid: writer.WriteValue(this._value != null ? (Guid?)this._value : new Guid?()); break; case JTokenType.Uri: writer.WriteValue((Uri)this._value); break; case JTokenType.TimeSpan: writer.WriteValue(this._value != null ? (TimeSpan?)this._value : new TimeSpan?()); break; default: throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", (object)this._valueType, "Unexpected token type."); } }
public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { string str; string str1; string str2; Guid? nullable; TimeSpan?nullable1; if (converters != null && converters.Length != 0 && this._value != null) { JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter(converters, this._value.GetType()); if (matchingConverter != null && matchingConverter.CanWrite) { matchingConverter.WriteJson(writer, this._value, JsonSerializer.CreateDefault()); return; } } switch (this._valueType) { case JTokenType.Comment: { JsonWriter jsonWriter = writer; if (this._value != null) { str = this._value.ToString(); } else { str = null; } jsonWriter.WriteComment(str); return; } case JTokenType.Integer: { if (this._value is int) { writer.WriteValue((int)this._value); return; } if (this._value is long) { writer.WriteValue((long)this._value); return; } if (this._value is ulong) { writer.WriteValue((ulong)this._value); return; } writer.WriteValue(Convert.ToInt64(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.Float: { if (this._value is decimal) { writer.WriteValue((decimal)this._value); return; } if (this._value is double) { writer.WriteValue((double)this._value); return; } if (this._value is float) { writer.WriteValue((float)this._value); return; } writer.WriteValue(Convert.ToDouble(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.String: { JsonWriter jsonWriter1 = writer; if (this._value != null) { str1 = this._value.ToString(); } else { str1 = null; } jsonWriter1.WriteValue(str1); return; } case JTokenType.Boolean: { writer.WriteValue(Convert.ToBoolean(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.Null: { writer.WriteNull(); return; } case JTokenType.Undefined: { writer.WriteUndefined(); return; } case JTokenType.Date: { if (this._value is DateTimeOffset) { writer.WriteValue((DateTimeOffset)this._value); return; } writer.WriteValue(Convert.ToDateTime(this._value, CultureInfo.InvariantCulture)); return; } case JTokenType.Raw: { JsonWriter jsonWriter2 = writer; if (this._value != null) { str2 = this._value.ToString(); } else { str2 = null; } jsonWriter2.WriteRawValue(str2); return; } case JTokenType.Bytes: { writer.WriteValue((byte[])this._value); return; } case JTokenType.Guid: { JsonWriter jsonWriter3 = writer; if (this._value != null) { nullable = (Guid?)this._value; } else { nullable = null; } jsonWriter3.WriteValue(nullable); return; } case JTokenType.Uri: { writer.WriteValue((Uri)this._value); return; } case JTokenType.TimeSpan: { JsonWriter jsonWriter4 = writer; if (this._value != null) { nullable1 = (TimeSpan?)this._value; } else { nullable1 = null; } jsonWriter4.WriteValue(nullable1); return; } } throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", this._valueType, "Unexpected token type."); }
public void JsonReaderToJsonWriter(JsonReader reader, JsonWriter writer) { do { //log.Info("reader.TokenType-->" + reader.TokenType); switch (reader.TokenType) { case JsonToken.None: break; case JsonToken.StartObject: writer.WriteStartObject(); break; case JsonToken.StartArray: writer.WriteStartArray(); break; case JsonToken.PropertyName: writer.WritePropertyName(reader.Value.ToString()); break; case JsonToken.Comment: writer.WriteComment((reader.Value != null) ? reader.Value.ToString() : null); break; //数字/字符/布尔型/GUID都转成string case JsonToken.Integer: case JsonToken.Float: case JsonToken.String: case JsonToken.Boolean: case JsonToken.Bytes: writer.WriteValue(reader.Value.ToString()); break; case JsonToken.Null: if (this.PropertyNullValueReplaceValue != null) { writer.WriteValue(this.PropertyNullValueReplaceValue); } else { writer.WriteNull(); } break; case JsonToken.Undefined: writer.WriteUndefined(); break; case JsonToken.EndObject: writer.WriteEndObject(); break; case JsonToken.EndArray: writer.WriteEndArray(); break; case JsonToken.EndConstructor: writer.WriteEndConstructor(); break; case JsonToken.Date: if (reader.Value != null) { writer.WriteValue(((DateTime)reader.Value).ToString("yyyy-MM-dd HH:mm:ss")); } break; case JsonToken.Raw: writer.WriteRawValue((reader.Value != null) ? reader.Value.ToString() : null); break; } } while (reader.Read()); }
/// <summary> /// Writes this token to a <see cref="JsonWriter"/>. /// </summary> /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param> /// <param name="converters">A collection of <see cref="JsonConverter"/> which will be used when writing the token.</param> public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { if (converters != null && converters.Length > 0 && _value != null) { JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter(converters, _value.GetType()); if (matchingConverter != null && matchingConverter.CanWrite) { matchingConverter.WriteJson(writer, _value, JsonSerializer.CreateDefault()); return; } } switch (_valueType) { case JTokenType.Comment: writer.WriteComment((_value != null) ? _value.ToString() : null); return; case JTokenType.Raw: writer.WriteRawValue((_value != null) ? _value.ToString() : null); return; case JTokenType.Null: writer.WriteNull(); return; case JTokenType.Undefined: writer.WriteUndefined(); return; case JTokenType.Integer: #if !(NET20 || NET35 || PORTABLE40 || PORTABLE) if (_value is BigInteger) { writer.WriteValue((BigInteger)_value); } else #endif writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Float: if (_value is decimal) { writer.WriteValue((decimal)_value); } else if (_value is double) { writer.WriteValue((double)_value); } else if (_value is float) { writer.WriteValue((float)_value); } else { writer.WriteValue(Convert.ToDouble(_value, CultureInfo.InvariantCulture)); } return; case JTokenType.String: writer.WriteValue((_value != null) ? _value.ToString() : null); return; case JTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Date: #if !NET20 if (_value is DateTimeOffset) { writer.WriteValue((DateTimeOffset)_value); } else #endif writer.WriteValue(Convert.ToDateTime(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Bytes: writer.WriteValue((byte[])_value); return; case JTokenType.Guid: case JTokenType.Uri: case JTokenType.TimeSpan: writer.WriteValue((_value != null) ? _value.ToString() : null); return; } throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type."); }
public void WriteUndefined() { writer.WriteUndefined(); }
/// <summary> /// Writes this token to a <see cref="JsonWriter"/>. /// </summary> /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param> /// <param name="converters">A collection of <see cref="JsonConverter"/> which will be used when writing the token.</param> public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { switch (_valueType) { case JTokenType.Comment: writer.WriteComment(_value.ToString()); return; case JTokenType.Raw: writer.WriteRawValue((_value != null) ? _value.ToString() : null); return; case JTokenType.Null: writer.WriteNull(); return; case JTokenType.Undefined: writer.WriteUndefined(); return; } JsonConverter matchingConverter; if (_value != null && ((matchingConverter = JsonSerializer.GetMatchingConverter(converters, _value.GetType())) != null)) { matchingConverter.WriteJson(writer, _value, new JsonSerializer()); return; } switch (_valueType) { case JTokenType.Integer: writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Float: writer.WriteValue(Convert.ToDouble(_value, CultureInfo.InvariantCulture)); return; case JTokenType.String: writer.WriteValue((_value != null) ? _value.ToString() : null); return; case JTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(_value, CultureInfo.InvariantCulture)); return; case JTokenType.Date: #if !PocketPC && !NET20 if (_value is DateTimeOffset) { writer.WriteValue((DateTimeOffset)_value); } else #endif writer.WriteValue(Convert.ToDateTime(_value, CultureInfo.InvariantCulture));; return; case JTokenType.Bytes: writer.WriteValue((byte[])_value); return; } throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type."); }
public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { if (((converters != null) && (converters.Length != 0)) && (this._value != null)) { JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter(converters, this._value.GetType()); if ((matchingConverter != null) && matchingConverter.CanWrite) { matchingConverter.WriteJson(writer, this._value, JsonSerializer.CreateDefault()); return; } } switch (this._valueType) { case JTokenType.Comment: writer.WriteComment(this._value?.ToString()); return; case JTokenType.Integer: switch (this._value) { case (int _): break; case (long _): writer.WriteValue((long)this._value); return; break; case (ulong _): writer.WriteValue((ulong)this._value); return; break; case (BigInteger _): writer.WriteValue((BigInteger)this._value); return; break; } writer.WriteValue((int)this._value); return; case JTokenType.Float: if (!(this._value is decimal)) { if (this._value is double) { writer.WriteValue((double)this._value); return; } if (this._value is float) { writer.WriteValue((float)this._value); return; } writer.WriteValue(Convert.ToDouble(this._value, CultureInfo.InvariantCulture)); return; } writer.WriteValue((decimal)this._value); return; case JTokenType.String: writer.WriteValue(this._value?.ToString()); return; case JTokenType.Boolean: writer.WriteValue(Convert.ToBoolean(this._value, CultureInfo.InvariantCulture)); return; case JTokenType.Null: writer.WriteNull(); return; case JTokenType.Undefined: writer.WriteUndefined(); return; case JTokenType.Date: if (!(this._value is DateTimeOffset)) { writer.WriteValue(Convert.ToDateTime(this._value, CultureInfo.InvariantCulture)); return; } writer.WriteValue((DateTimeOffset)this._value); return; case JTokenType.Raw: writer.WriteRawValue(this._value?.ToString()); return; case JTokenType.Bytes: writer.WriteValue((byte[])this._value); return; case JTokenType.Guid: writer.WriteValue((this._value != null) ? ((Guid?)this._value) : null); return; case JTokenType.Uri: writer.WriteValue((Uri)this._value); return; case JTokenType.TimeSpan: writer.WriteValue((this._value != null) ? ((TimeSpan?)this._value) : null); return; } throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", this._valueType, "Unexpected token type."); }
/// <summary> /// Writes this token to a <see cref="JsonWriter"/>. /// </summary> /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param> /// <param name="converters">A collection of <see cref="JsonConverter"/> which will be used when writing the token.</param> public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { switch (_valueType) { case JsonTokenType.Comment: writer.WriteComment(_value.ToString()); break; case JsonTokenType.Integer: WriteConvertableValue(writer, converters, v => writer.WriteValue(Convert.ToInt64(v, CultureInfo.InvariantCulture)), _value); break; case JsonTokenType.Float: WriteConvertableValue(writer, converters, v => writer.WriteValue(Convert.ToDouble(v, CultureInfo.InvariantCulture)), _value); break; case JsonTokenType.String: WriteConvertableValue(writer, converters, v => writer.WriteValue(v.ToString()), _value); break; case JsonTokenType.Boolean: WriteConvertableValue(writer, converters, v => writer.WriteValue(Convert.ToBoolean(v, CultureInfo.InvariantCulture)), _value); break; case JsonTokenType.Date: WriteConvertableValue(writer, converters, v => { if (v is DateTimeOffset) writer.WriteValue((DateTimeOffset)v); else writer.WriteValue(Convert.ToDateTime(v, CultureInfo.InvariantCulture)); }, _value); break; case JsonTokenType.Raw: writer.WriteRawValue(_value.ToString()); break; case JsonTokenType.Null: writer.WriteNull(); break; case JsonTokenType.Undefined: writer.WriteUndefined(); break; default: throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type."); } }
public override void WriteUndefined() { _innerWriter.WriteUndefined(); }