public DateTimeOffset?Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver) { if (reader.ReadIsNull()) { return(null); } var token = reader.GetCurrentJsonToken(); if (token == JsonToken.Number) { reader.ReadInt64(); } else { var number = reader.ReadStringSegmentRaw(); NumberConverter.ReadInt64(number.Array, number.Offset, out var readCount); if (readCount == 0) { return(null); } } return(DogApiUtil.UnixTimeSecondsToDateTimeOffset(reader.ReadInt64())); }
public DateTimeOffset?Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver) { if (reader.ReadIsNull()) { return(null); } return(DogApiUtil.UnixTimeSecondsToDateTimeOffset(reader.ReadInt64())); }
public DateTimeOffset Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver) { var token = reader.GetCurrentJsonToken(); long lngValue; if (token == JsonToken.Number) { lngValue = reader.ReadInt64(); } else { var number = reader.ReadStringSegmentRaw(); lngValue = NumberConverter.ReadInt64(number.Array, number.Offset, out _); } return(DogApiUtil.UnixTimeSecondsToDateTimeOffset(lngValue)); }
public DogMetricPoint Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver) { if (reader.ReadIsNull()) { return(null); } else { reader.ReadIsBeginArrayWithVerify(); DateTimeOffset timestamp; double value; var count = 0; if (!reader.ReadIsEndArrayWithSkipValueSeparator(ref count)) { var dec = DecimalFormatter.Default.Deserialize(ref reader, formatterResolver); /* 小数点がついてくるのでDecimalFormatterを使う */ timestamp = DogApiUtil.UnixTimeMillisecondsToDateTimeOffset((long)dec); } else { throw new JsonParsingException("invalid point json data"); } if (!reader.ReadIsEndArrayWithSkipValueSeparator(ref count)) { value = reader.ReadDouble(); } else { throw new JsonParsingException("invalid point json data"); } if (!reader.ReadIsEndArrayWithSkipValueSeparator(ref count)) { throw new JsonParsingException("invalid point json data"); } return(new DogMetricPoint() { Timestamp = timestamp, Value = value }); } }
public DateTimeOffset Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver) => DogApiUtil.UnixTimeSecondsToDateTimeOffset(reader.ReadInt64());