From ec46cbcd719c4fd1c49766bf2e912ee13ef7a16a Mon Sep 17 00:00:00 2001 From: kjac Date: Mon, 20 Feb 2023 11:04:57 +0100 Subject: [PATCH] Make JSON object converter return JsonArray for arrays of JSON items --- .../Serialization/JsonObjectConverter.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Infrastructure/Serialization/JsonObjectConverter.cs b/src/Umbraco.Infrastructure/Serialization/JsonObjectConverter.cs index a763c21a1c..f5fa3d8dd7 100644 --- a/src/Umbraco.Infrastructure/Serialization/JsonObjectConverter.cs +++ b/src/Umbraco.Infrastructure/Serialization/JsonObjectConverter.cs @@ -46,7 +46,11 @@ public class JsonObjectConverter : JsonConverter items.Add(ParseObject(ref reader)); } - return items.ToArray(); + // if the list of items consists solely of JsonNodes, we are parsing an array of complex objects and should return a JsonArray. + // otherwise we are parsing an array of simple or mixed types (i.e. an array or strings or integers) and should return an object array. + return items.All(i => i is JsonNode) + ? new JsonArray(items.OfType().ToArray()) + : items.ToArray(); } if (reader.TokenType == JsonTokenType.StartObject)