Move Json Options to static class for easier access.

This commit is contained in:
crobibero 2020-04-21 08:17:13 -06:00
parent c89dc8921f
commit fe632146dc
3 changed files with 45 additions and 4 deletions

View File

@ -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
/// <summary>
/// Initializes a new instance of the <see cref="CamelCaseJsonProfileFormatter"/> class.
/// </summary>
public CamelCaseJsonProfileFormatter() : base(new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase })
public CamelCaseJsonProfileFormatter() : base(JsonOptions.CamelCase)
{
SupportedMediaTypes.Clear();
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json;profile=\"CamelCase\""));

View File

@ -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
/// <summary>
/// Initializes a new instance of the <see cref="PascalCaseJsonProfileFormatter"/> class.
/// </summary>
public PascalCaseJsonProfileFormatter() : base(new JsonSerializerOptions { PropertyNamingPolicy = null })
public PascalCaseJsonProfileFormatter() : base(JsonOptions.PascalCase)
{
SupportedMediaTypes.Clear();
// Add application/json for default formatter

View File

@ -0,0 +1,41 @@
using System.Text.Json;
namespace Jellyfin.Server.Models
{
/// <summary>
/// Json Options.
/// </summary>
public static class JsonOptions
{
/// <summary>
/// Base Json Serializer Options.
/// </summary>
private static readonly JsonSerializerOptions _jsonOptions = new JsonSerializerOptions();
/// <summary>
/// Gets CamelCase json options.
/// </summary>
public static JsonSerializerOptions CamelCase
{
get
{
var options = _jsonOptions;
options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
return options;
}
}
/// <summary>
/// Gets PascalCase json options.
/// </summary>
public static JsonSerializerOptions PascalCase
{
get
{
var options = _jsonOptions;
options.PropertyNamingPolicy = null;
return options;
}
}
}
}