commit
383bc45372
@ -0,0 +1,21 @@
|
|||||||
|
using Jellyfin.Server.Models;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Formatters;
|
||||||
|
using Microsoft.Net.Http.Headers;
|
||||||
|
|
||||||
|
namespace Jellyfin.Server.Formatters
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Camel Case Json Profile Formatter.
|
||||||
|
/// </summary>
|
||||||
|
public class CamelCaseJsonProfileFormatter : SystemTextJsonOutputFormatter
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="CamelCaseJsonProfileFormatter"/> class.
|
||||||
|
/// </summary>
|
||||||
|
public CamelCaseJsonProfileFormatter() : base(JsonOptions.CamelCase)
|
||||||
|
{
|
||||||
|
SupportedMediaTypes.Clear();
|
||||||
|
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json;profile=\"CamelCase\""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
using Jellyfin.Server.Models;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Formatters;
|
||||||
|
using Microsoft.Net.Http.Headers;
|
||||||
|
|
||||||
|
namespace Jellyfin.Server.Formatters
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Pascal Case Json Profile Formatter.
|
||||||
|
/// </summary>
|
||||||
|
public class PascalCaseJsonProfileFormatter : SystemTextJsonOutputFormatter
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="PascalCaseJsonProfileFormatter"/> class.
|
||||||
|
/// </summary>
|
||||||
|
public PascalCaseJsonProfileFormatter() : base(JsonOptions.PascalCase)
|
||||||
|
{
|
||||||
|
SupportedMediaTypes.Clear();
|
||||||
|
// Add application/json for default formatter
|
||||||
|
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json"));
|
||||||
|
SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json;profile=\"PascalCase\""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
|
namespace Jellyfin.Server.Models
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Json Options.
|
||||||
|
/// </summary>
|
||||||
|
public static class JsonOptions
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets CamelCase json options.
|
||||||
|
/// </summary>
|
||||||
|
public static JsonSerializerOptions CamelCase
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var options = DefaultJsonOptions;
|
||||||
|
options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets PascalCase json options.
|
||||||
|
/// </summary>
|
||||||
|
public static JsonSerializerOptions PascalCase
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var options = DefaultJsonOptions;
|
||||||
|
options.PropertyNamingPolicy = null;
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets base Json Serializer Options.
|
||||||
|
/// </summary>
|
||||||
|
private static JsonSerializerOptions DefaultJsonOptions => new JsonSerializerOptions();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue