Working state, refactored Rory&::LibMatrix
1 files changed, 16 insertions, 1 deletions
diff --git a/MatrixRoomUtils.Core/Extensions/JsonElementExtensions.cs b/MatrixRoomUtils.Core/Extensions/JsonElementExtensions.cs
index b007136..78f4456 100644
--- a/MatrixRoomUtils.Core/Extensions/JsonElementExtensions.cs
+++ b/MatrixRoomUtils.Core/Extensions/JsonElementExtensions.cs
@@ -1,12 +1,13 @@
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
using System.Text.Json;
+using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
namespace MatrixRoomUtils.Core.Extensions;
public static class JsonElementExtensions {
- public static void FindExtraJsonFields([DisallowNull] this JsonElement? res, Type t) {
+ public static void FindExtraJsonElementFields([DisallowNull] this JsonElement? res, Type t) {
var props = t.GetProperties();
var unknownPropertyFound = false;
foreach (var field in res.Value.EnumerateObject()) {
@@ -17,4 +18,18 @@ public static class JsonElementExtensions {
if (unknownPropertyFound) Console.WriteLine(res.Value.ToJson());
}
+ public static void FindExtraJsonObjectFields([DisallowNull] this JsonObject? res, Type t) {
+ var props = t.GetProperties();
+ var unknownPropertyFound = false;
+ foreach (var field in res) {
+ if (props.Any(x => x.GetCustomAttribute<JsonPropertyNameAttribute>()?.Name == field.Key)) continue;
+ Console.WriteLine($"[!!] Unknown property {field.Key} in {t.Name}!");
+ unknownPropertyFound = true;
+ // foreach (var propertyInfo in props) {
+ // Console.WriteLine($"[!!] Known property {propertyInfo.GetCustomAttribute<JsonPropertyNameAttribute>()?.Name} in {t.Name}!");
+ // }
+ }
+
+ if (unknownPropertyFound) Console.WriteLine(res.ToJson());
+ }
}
\ No newline at end of file
|