public DateTimeOffset?Deserialize(ref JsonReader reader, IJsonFormatterResolver formatterResolver)
 {
     if (reader.ReadIsNull())
     {
         return(null);
     }
     return(DogApiUtil.UnixTimeMillisecondsToDateTimeOffset(reader.ReadInt64()));
 }
コード例 #2
0
        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.UnixTimeMillisecondsToDateTimeOffset(reader.ReadInt64());