mirror of
https://github.com/LukeHagar/plexcsharp.git
synced 2025-12-07 04:20:48 +00:00
ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.391.3
This commit is contained in:
94
LukeHagar/PlexAPI/SDK/Utils/AnyDeserializer.cs
Normal file
94
LukeHagar/PlexAPI/SDK/Utils/AnyDeserializer.cs
Normal file
@@ -0,0 +1,94 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
namespace LukeHagar.PlexAPI.SDK.Utils
|
||||
{
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class AnyDeserializer : JsonConverter
|
||||
{
|
||||
public override bool CanConvert(Type objectType)
|
||||
{
|
||||
return (objectType == typeof(Dictionary<string, object>));
|
||||
}
|
||||
|
||||
public override bool CanWrite => false;
|
||||
|
||||
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
public override object ReadJson(
|
||||
JsonReader reader,
|
||||
Type objectType,
|
||||
object? existingValue,
|
||||
JsonSerializer serializer
|
||||
)
|
||||
{
|
||||
if (reader.TokenType == JsonToken.StartObject) {
|
||||
return ParseTokenIntoDictionary(JToken.Load(reader));
|
||||
}
|
||||
throw new JsonSerializationException($"Could not deserialize token into dictionary");
|
||||
}
|
||||
|
||||
private Dictionary<string, object?> ParseTokenIntoDictionary(JToken token)
|
||||
{
|
||||
var dict = new Dictionary<string, object?>();
|
||||
|
||||
foreach (var child in token.Children<JProperty>())
|
||||
{
|
||||
|
||||
object? val = null;
|
||||
if (child.Value is JObject)
|
||||
{
|
||||
val = ParseTokenIntoDictionary(child.Value);
|
||||
}
|
||||
else if (child.Value is JArray)
|
||||
{
|
||||
val = ParseTokenIntoList(child.Value);
|
||||
}
|
||||
else if (child.Value != null)
|
||||
{
|
||||
val = ((JValue)child.Value).Value;
|
||||
}
|
||||
|
||||
dict[child.Name] = val;
|
||||
}
|
||||
|
||||
return dict;
|
||||
}
|
||||
|
||||
private List<object?> ParseTokenIntoList(JToken token)
|
||||
{
|
||||
var list = new List<object?>();
|
||||
|
||||
foreach (var child in token.Children())
|
||||
{
|
||||
if (child is JObject)
|
||||
{
|
||||
list.Add((object)ParseTokenIntoDictionary(child));
|
||||
}
|
||||
else if (child is JArray)
|
||||
{
|
||||
list.Add((object)ParseTokenIntoList(child));
|
||||
}
|
||||
else
|
||||
{
|
||||
list.Add(((JValue)child).Value);
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user