using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pf2eModel.Model.Common.I18n; namespace Pf2eViewer.Converters; public class LocaleStringConverter : JsonConverter { public override bool CanConvert(Type objectType) { return objectType == typeof(LocaleString); } public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) { JObject result = new(); LocaleString str = (LocaleString)value!; foreach (LocaleItem item in str) { result.Add(item.Locale.GetTypeString(), item.Value); } result.WriteTo(writer); } public override bool CanRead => false; public override object? ReadJson( JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer ) { throw new NotImplementedException( "Unnecessary because CanRead is false. The type will skip the converter." ); } }