public void CallSerialize(long value) { if (value >= 0) { CallSerialize((ulong)value); } else if ((ulong)(value + MaxInteger) <= (ulong)(MaxInteger << 1) || !Config.IsMaxNumberToString) { CharStream.WriteNegative(19); CallSerialize((ulong)-value); } else { CharStream.WriteJsonString(value); } }
public void CallSerialize(ulong value) { if (value <= MaxInteger || !Config.IsMaxNumberToString) { if (value <= uint.MaxValue) { CallSerialize((uint)value); } else if (Config.IsIntegerToHex) { CharStream.WriteJsonHex(value); } else { AutoCSer.Extensions.NumberExtension.ToString(value, CharStream); } } else { CharStream.WriteJsonString(value); } }
/// <summary> /// 时间转换 /// </summary> /// <param name="value">时间</param> internal void SerializeDateTime(DateTime value) { if (value == DateTime.MinValue && Config.IsDateTimeMinNull) { CharStream.WriteJsonNull(); return; } switch (Config.DateTimeType) { case DateTimeType.Default: CharStream.WriteJsonString(value); return; case DateTimeType.Sql: CharStream.WriteJsonSqlString(value); return; case DateTimeType.Javascript: CharStream.WriteJsonNewDate(); CallSerialize(((value.Kind == DateTimeKind.Utc ? value.Ticks + Date.LocalTimeTicks : value.Ticks) - AutoCSer.JsonDeSerializer.JavascriptLocalMinTimeTicks) / TimeSpan.TicksPerMillisecond); CharStream.Data.Write(')'); return; case DateTimeType.ThirdParty: CharStream.WriteJsonOtherDate(); CallSerialize(((value.Kind == DateTimeKind.Utc ? value.Ticks + Date.LocalTimeTicks : value.Ticks) - AutoCSer.JsonDeSerializer.JavascriptLocalMinTimeTicks) / TimeSpan.TicksPerMillisecond); CharStream.WriteJsonOtherDateEnd(); return; case DateTimeType.CustomFormat: if (Config.DateTimeCustomFormat == null) { primitiveSerialize(value.ToString()); } else { primitiveSerialize(value.ToString(Config.DateTimeCustomFormat)); } return; } }