diff --git a/Jellyfin.Server/Formatters/CamelCaseJsonProfileFormatter.cs b/Jellyfin.Server/Formatters/CamelCaseJsonProfileFormatter.cs
index 433a3197d3..e6ad6dfb13 100644
--- a/Jellyfin.Server/Formatters/CamelCaseJsonProfileFormatter.cs
+++ b/Jellyfin.Server/Formatters/CamelCaseJsonProfileFormatter.cs
@@ -1,4 +1,4 @@
-using System.Text.Json;
+using Jellyfin.Server.Models;
using Microsoft.AspNetCore.Mvc.Formatters;
using Microsoft.Net.Http.Headers;
@@ -12,7 +12,7 @@ namespace Jellyfin.Server.Formatters
///
/// Initializes a new instance of the class.
///
- public CamelCaseJsonProfileFormatter() : base(new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase })
+ public CamelCaseJsonProfileFormatter() : base(JsonOptions.CamelCase)
{
SupportedMediaTypes.Clear();
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json;profile=\"CamelCase\""));
diff --git a/Jellyfin.Server/Formatters/PascalCaseJsonProfileFormatter.cs b/Jellyfin.Server/Formatters/PascalCaseJsonProfileFormatter.cs
index 2ed006a336..675f4c79ee 100644
--- a/Jellyfin.Server/Formatters/PascalCaseJsonProfileFormatter.cs
+++ b/Jellyfin.Server/Formatters/PascalCaseJsonProfileFormatter.cs
@@ -1,4 +1,4 @@
-using System.Text.Json;
+using Jellyfin.Server.Models;
using Microsoft.AspNetCore.Mvc.Formatters;
using Microsoft.Net.Http.Headers;
@@ -12,7 +12,7 @@ namespace Jellyfin.Server.Formatters
///
/// Initializes a new instance of the class.
///
- public PascalCaseJsonProfileFormatter() : base(new JsonSerializerOptions { PropertyNamingPolicy = null })
+ public PascalCaseJsonProfileFormatter() : base(JsonOptions.PascalCase)
{
SupportedMediaTypes.Clear();
// Add application/json for default formatter
diff --git a/Jellyfin.Server/Models/JsonOptions.cs b/Jellyfin.Server/Models/JsonOptions.cs
new file mode 100644
index 0000000000..fa503bc9a4
--- /dev/null
+++ b/Jellyfin.Server/Models/JsonOptions.cs
@@ -0,0 +1,41 @@
+using System.Text.Json;
+
+namespace Jellyfin.Server.Models
+{
+ ///
+ /// Json Options.
+ ///
+ public static class JsonOptions
+ {
+ ///
+ /// Base Json Serializer Options.
+ ///
+ private static readonly JsonSerializerOptions _jsonOptions = new JsonSerializerOptions();
+
+ ///
+ /// Gets CamelCase json options.
+ ///
+ public static JsonSerializerOptions CamelCase
+ {
+ get
+ {
+ var options = _jsonOptions;
+ options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
+ return options;
+ }
+ }
+
+ ///
+ /// Gets PascalCase json options.
+ ///
+ public static JsonSerializerOptions PascalCase
+ {
+ get
+ {
+ var options = _jsonOptions;
+ options.PropertyNamingPolicy = null;
+ return options;
+ }
+ }
+ }
+}