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)