/// <summary> /// Writes the JSON representation of the object. /// </summary> /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param> /// <param name="value">The value.</param> /// <param name="serializer">The calling serializer.</param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { long ticks; if (value is DateTime) { DateTime dateTime = (DateTime)value; DateTime utcDateTime = dateTime.ToUniversalTime(); ticks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(utcDateTime); } #if !NET20 else if (value is DateTimeOffset) { DateTimeOffset dateTimeOffset = (DateTimeOffset)value; DateTimeOffset utcDateTimeOffset = dateTimeOffset.ToUniversalTime(); ticks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(utcDateTimeOffset.UtcDateTime); } #endif else { throw new JsonSerializationException("Expected date object value."); } writer.WriteStartConstructor("Date"); writer.WriteValue(ticks); writer.WriteEndConstructor(); }
/// <summary> /// Writes the JSON representation of the object. /// </summary> /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param> /// <param name="value">The value.</param> /// <param name="serializer">The calling serializer.</param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { String isoDateTimeString; if (value is DateTime) { DateTime dateTime = (DateTime)value; if ((DateTimeStyles & DateTimeStyles.AdjustToUniversal) == DateTimeStyles.AdjustToUniversal || (DateTimeStyles & DateTimeStyles.AssumeUniversal) == DateTimeStyles.AssumeUniversal) dateTime = dateTime.ToUniversalTime(); isoDateTimeString = dateTime.ToString(DefaultDateTimeFormat); } #if !PocketPC && !NET20 else if (value is DateTimeOffset) { DateTimeOffset dateTimeOffset = (DateTimeOffset)value; if ((DateTimeStyles & DateTimeStyles.AdjustToUniversal) == DateTimeStyles.AdjustToUniversal || (DateTimeStyles & DateTimeStyles.AssumeUniversal) == DateTimeStyles.AssumeUniversal) dateTimeOffset = dateTimeOffset.ToUniversalTime(); isoDateTimeString = dateTimeOffset.ToString(DefaultDateTimeFormat); } #endif else { throw new Exception("Expected date object value."); } writer.WriteStartConstructor("Date"); writer.WriteValue(isoDateTimeString); writer.WriteEndConstructor(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (!(value is DateTime)) throw new JsonSerializationException("Expected date object value."); long num = JsonConvert.ConvertDateTimeToJavaScriptTicks(((DateTime) value).ToUniversalTime()); writer.WriteStartConstructor("Date"); writer.WriteValue(num); writer.WriteEndConstructor(); }
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { if (value is DateTime) { DateTime date = (DateTime)value; if (date.Equals(DateTime.MinValue)) { writer.WriteRawValue("null"); } else { string template = (date.TimeOfDay == new TimeSpan(0, 0, 0)) ? "{0},{1},{2}" : "{0},{1},{2},{3},{4},{5},{6}"; writer.WriteStartConstructor("Date"); writer.WriteRawValue( string.Format(template, date.Year, date.Month - 1, date.Day, date.Hour, date.Minute, date.Second, date.Millisecond)); writer.WriteEndConstructor(); } } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value is DateTime) { DateTime date = (DateTime)value; if (date.Equals(DateTime.MinValue)) { writer.WriteRawValue("null"); } else { string template = (date.TimeOfDay == new TimeSpan(0, 0, 0)) ? "{0},{1},{2}" : "{0},{1},{2},{3},{4},{5}"; writer.WriteStartConstructor("Date"); writer.WriteRawValue( string.Format(template, date.Year, date.Month - 1, date.Day, date.Hour, date.Minute, date.Second)); writer.WriteEndConstructor(); } } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { string v; if (value != null && !string.IsNullOrEmpty((v = value.ToString( )))) { if (System.Text.RegularExpressions.Regex.IsMatch(v, @"\[*\]")) { writer.WriteRawValue(v); } else if (System.Text.RegularExpressions.Regex.IsMatch(v, @"\{*\}")) { writer.WriteRawValue(v); } else { writer.WriteStartConstructor(value.ToString( )); writer.WriteEndConstructor( ); } } else writer.WriteNull( ); }
public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) { writer.WriteStartConstructor(this._name); foreach (JToken jtoken in this.Children()) jtoken.WriteTo(writer, converters); writer.WriteEndConstructor(); }
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((DateTimeOffset)reader.Value); } else { writer.WriteValue(Convert.ToDateTime(reader.Value, CultureInfo.InvariantCulture)); } 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()); }