From 4e019aa46cab7048e34a797720d5a1073b85f9e2 Mon Sep 17 00:00:00 2001 From: chirp Date: Fri, 16 Jun 2023 10:38:34 +0100 Subject: [PATCH] Catch errors for type mismatch in json files --- .../Data/Serialization/Converters/JsonFileConverter.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Ktisis/Data/Serialization/Converters/JsonFileConverter.cs b/Ktisis/Data/Serialization/Converters/JsonFileConverter.cs index 3ab730c55..1d69f2c0f 100644 --- a/Ktisis/Data/Serialization/Converters/JsonFileConverter.cs +++ b/Ktisis/Data/Serialization/Converters/JsonFileConverter.cs @@ -3,6 +3,8 @@ using System.Text.Json; using System.Text.Json.Serialization; +using Dalamud.Logging; + using Ktisis.Data.Files; namespace Ktisis.Data.Serialization.Converters { @@ -21,8 +23,12 @@ public class JsonFileConverter : JsonConverter { continue; } - var value = JsonSerializer.Deserialize(jsonValue, prop.PropertyType, options); - prop.SetValue(result, value); + try { + var value = jsonValue.Deserialize(prop.PropertyType, options); + if (value != null) prop.SetValue(result, value); + } catch { + PluginLog.Warning($"Failed to parse {prop.PropertyType.Name} value '{prop.Name}' (received {jsonValue.ValueKind} instead)"); + } } return result;