From 126753a1feb8ff85086259fd8c1fcef85b4df41f Mon Sep 17 00:00:00 2001 From: Anthony Lavado Date: Tue, 8 Dec 2020 12:08:24 -0500 Subject: [PATCH] Merge pull request #4735 from crobibero/json-recursion Fix JsonConverter recursion (cherry picked from commit 94d805d03d93764365c5b63e23f239d47d23ad0a) Signed-off-by: Joshua M. Boniface --- .../LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs | 2 -- .../Json/Converters/JsonBoolNumberConverter.cs | 2 +- .../Jellyfin.Common.Tests/Json/JsonBoolNumberTests.cs | 11 +++++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs index 0f296d9894..48bc1efb1c 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs +++ b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs @@ -342,10 +342,8 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun public string URL { get; set; } - [JsonConverter(typeof(JsonBoolNumberConverter))] public bool Favorite { get; set; } - [JsonConverter(typeof(JsonBoolNumberConverter))] public bool DRM { get; set; } public int HD { get; set; } diff --git a/MediaBrowser.Common/Json/Converters/JsonBoolNumberConverter.cs b/MediaBrowser.Common/Json/Converters/JsonBoolNumberConverter.cs index cb2047049e..b29e6a71a6 100644 --- a/MediaBrowser.Common/Json/Converters/JsonBoolNumberConverter.cs +++ b/MediaBrowser.Common/Json/Converters/JsonBoolNumberConverter.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Common.Json.Converters /// public override void Write(Utf8JsonWriter writer, bool value, JsonSerializerOptions options) { - JsonSerializer.Serialize(writer, value, options); + writer.WriteBooleanValue(value); } } } \ No newline at end of file diff --git a/tests/Jellyfin.Common.Tests/Json/JsonBoolNumberTests.cs b/tests/Jellyfin.Common.Tests/Json/JsonBoolNumberTests.cs index 3779e2d0ae..9ded01f2b1 100644 --- a/tests/Jellyfin.Common.Tests/Json/JsonBoolNumberTests.cs +++ b/tests/Jellyfin.Common.Tests/Json/JsonBoolNumberTests.cs @@ -19,5 +19,16 @@ namespace Jellyfin.Common.Tests.Json var value = JsonSerializer.Deserialize(input, options); Assert.Equal(value, output); } + + [Theory] + [InlineData(true, "true")] + [InlineData(false, "false")] + public static void Serialize_Bool_Success(bool input, string output) + { + var options = new JsonSerializerOptions(); + options.Converters.Add(new JsonBoolNumberConverter()); + var value = JsonSerializer.Serialize(input, options); + Assert.Equal(value, output); + } } } \ No newline at end of file