diff --git a/src/Umbraco.PublishedCache.HybridCache/Serialization/IContentCacheDataSerializer.cs b/src/Umbraco.PublishedCache.HybridCache/Serialization/IContentCacheDataSerializer.cs
index a46c667a4d..91c32d6161 100644
--- a/src/Umbraco.PublishedCache.HybridCache/Serialization/IContentCacheDataSerializer.cs
+++ b/src/Umbraco.PublishedCache.HybridCache/Serialization/IContentCacheDataSerializer.cs
@@ -1,9 +1,9 @@
-using Umbraco.Cms.Core.Models;
+using Umbraco.Cms.Core.Models;
namespace Umbraco.Cms.Infrastructure.HybridCache.Serialization;
///
-/// Serializes/Deserializes document to the SQL Database as a string
+/// Serializes/Deserializes document to the SQL Database as a string.
///
///
/// Resolved from the . This cannot be resolved from DI.
@@ -11,12 +11,12 @@ namespace Umbraco.Cms.Infrastructure.HybridCache.Serialization;
internal interface IContentCacheDataSerializer
{
///
- /// Deserialize the data into a
+ /// Deserialize the data into a .
///
ContentCacheDataModel? Deserialize(IReadOnlyContentBase content, string? stringData, byte[]? byteData, bool published);
///
- /// Serializes the
+ /// Serializes the .
///
ContentCacheDataSerializationResult Serialize(IReadOnlyContentBase content, ContentCacheDataModel model, bool published);
}
diff --git a/src/Umbraco.PublishedCache.HybridCache/Serialization/JsonContentNestedDataSerializer.cs b/src/Umbraco.PublishedCache.HybridCache/Serialization/JsonContentNestedDataSerializer.cs
index cfe1fb2425..1bb4822ced 100644
--- a/src/Umbraco.PublishedCache.HybridCache/Serialization/JsonContentNestedDataSerializer.cs
+++ b/src/Umbraco.PublishedCache.HybridCache/Serialization/JsonContentNestedDataSerializer.cs
@@ -4,6 +4,9 @@ using Umbraco.Cms.Core.Models;
namespace Umbraco.Cms.Infrastructure.HybridCache.Serialization;
+///
+/// Serializes/deserializes documents to the SQL Database as JSON.
+///
internal class JsonContentNestedDataSerializer : IContentCacheDataSerializer
{
private static readonly JsonSerializerOptions _jsonSerializerOptions = new()
@@ -40,4 +43,27 @@ internal class JsonContentNestedDataSerializer : IContentCacheDataSerializer
var json = JsonSerializer.Serialize(model, _jsonSerializerOptions);
return new ContentCacheDataSerializationResult(json, null);
}
+
+ ///
+ /// Provides a converter for handling JSON objects that can be of various types (string, number, boolean, null, or complex types).
+ ///
+ internal class JsonObjectConverter : JsonConverter