diff options
| author | Bond-009 <bond.009@outlook.com> | 2020-08-26 18:59:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-26 18:59:46 +0200 |
| commit | 4f6c98b325aa544ac1f3a522ea668b3f990265e3 (patch) | |
| tree | 40c38d1a8d4214722b2fed816616cc0a22de7577 /MediaBrowser.Common/Json/Converters/JsonInt64Converter.cs | |
| parent | 4e3f26b647a9fe996b5a96ea10fa1f2468ea41fb (diff) | |
| parent | de4cfa223498dde4e665c452337f032c29270abe (diff) | |
Merge pull request #3984 from crobibero/json-prerelease
Use Prerelease System.Text.Json
Diffstat (limited to 'MediaBrowser.Common/Json/Converters/JsonInt64Converter.cs')
| -rw-r--r-- | MediaBrowser.Common/Json/Converters/JsonInt64Converter.cs | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/MediaBrowser.Common/Json/Converters/JsonInt64Converter.cs b/MediaBrowser.Common/Json/Converters/JsonInt64Converter.cs deleted file mode 100644 index 427f1fa7e..000000000 --- a/MediaBrowser.Common/Json/Converters/JsonInt64Converter.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Buffers; -using System.Buffers.Text; -using System.Globalization; -using System.Text.Json; -using System.Text.Json.Serialization; - -namespace MediaBrowser.Common.Json.Converters -{ - /// <summary> - /// Parse JSON string as long. - /// Javascript does not support 64-bit integers. - /// </summary> - public class JsonInt64Converter : JsonConverter<long> - { - /// <summary> - /// Read JSON string as int64. - /// </summary> - /// <param name="reader"><see cref="Utf8JsonReader"/>.</param> - /// <param name="type">Type.</param> - /// <param name="options">Options.</param> - /// <returns>Parsed value.</returns> - public override long Read(ref Utf8JsonReader reader, Type type, JsonSerializerOptions options) - { - if (reader.TokenType == JsonTokenType.String) - { - // try to parse number directly from bytes - var span = reader.HasValueSequence ? reader.ValueSequence.ToArray() : reader.ValueSpan; - if (Utf8Parser.TryParse(span, out long number, out var bytesConsumed) && span.Length == bytesConsumed) - { - return number; - } - - // try to parse from a string if the above failed, this covers cases with other escaped/UTF characters - if (long.TryParse(reader.GetString(), out number)) - { - return number; - } - } - - // fallback to default handling - return reader.GetInt64(); - } - - /// <summary> - /// Write long to JSON long. - /// </summary> - /// <param name="writer"><see cref="Utf8JsonWriter"/>.</param> - /// <param name="value">Value to write.</param> - /// <param name="options">Options.</param> - public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options) - { - writer.WriteNumberValue(value); - } - } -} |
