diff options
| author | crobibero <cody@robibe.ro> | 2020-05-22 10:48:01 -0600 |
|---|---|---|
| committer | crobibero <cody@robibe.ro> | 2020-05-22 10:48:01 -0600 |
| commit | 341b947cdecdfc791c1bc3e72da1e68cd3754c3a (patch) | |
| tree | 0dde9d707204d306cb8746873ed02a23b9dfdd9d /Jellyfin.Server | |
| parent | 2f2bceb1104d8ea669ca21fc40200247aca956ed (diff) | |
Move int64 converter to JsonDefaults location
Diffstat (limited to 'Jellyfin.Server')
| -rw-r--r-- | Jellyfin.Server/Converters/LongToStringConverter.cs | 56 | ||||
| -rw-r--r-- | Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs | 2 |
2 files changed, 0 insertions, 58 deletions
diff --git a/Jellyfin.Server/Converters/LongToStringConverter.cs b/Jellyfin.Server/Converters/LongToStringConverter.cs deleted file mode 100644 index ad66b7b0c3..0000000000 --- a/Jellyfin.Server/Converters/LongToStringConverter.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 Jellyfin.Server.Converters -{ - /// <summary> - /// Long to String JSON converter. - /// Javascript does not support 64-bit integers. - /// </summary> - public class LongToStringConverter : JsonConverter<long> - { - /// <summary> - /// Read JSON string as Long. - /// </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 - ReadOnlySpan<byte> span = reader.HasValueSequence ? reader.ValueSequence.ToArray() : reader.ValueSpan; - if (Utf8Parser.TryParse(span, out long number, out int 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 string. - /// </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.WriteStringValue(value.ToString(NumberFormatInfo.InvariantInfo)); - } - } -} diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index afd42ac5ac..71ef9a69a2 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -4,7 +4,6 @@ using Jellyfin.Api.Auth.FirstTimeSetupOrElevatedPolicy; using Jellyfin.Api.Auth.RequiresElevationPolicy; using Jellyfin.Api.Constants; using Jellyfin.Api.Controllers; -using Jellyfin.Server.Converters; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.DependencyInjection; @@ -76,7 +75,6 @@ namespace Jellyfin.Server.Extensions { // Setting the naming policy to null leaves the property names as-is when serializing objects to JSON. options.JsonSerializerOptions.PropertyNamingPolicy = null; - options.JsonSerializerOptions.Converters.Add(new LongToStringConverter()); }) .AddControllersAsServices(); } |
