diff --git a/Iceshrimp.Backend/Core/Federation/ActivityStreams/Types/ASCollection.cs b/Iceshrimp.Backend/Core/Federation/ActivityStreams/Types/ASCollection.cs index a81d42e6..b4dba90a 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityStreams/Types/ASCollection.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityStreams/Types/ASCollection.cs @@ -119,7 +119,7 @@ internal class ASCollectionItemsConverter : JsonConverter var obj = JArray.Load(reader); return obj.Count == 0 ? null - : obj.SelectToken("$.[*].@list")?.Children().Select(ASObject.Deserialize).OfType().ToList(); + : obj.Select(ASObject.Deserialize).OfType().ToList(); } public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) diff --git a/Iceshrimp.Backend/Core/Federation/ActivityStreams/Types/ASOrderedCollection.cs b/Iceshrimp.Backend/Core/Federation/ActivityStreams/Types/ASOrderedCollection.cs index 853b3d3d..98ca89b5 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityStreams/Types/ASOrderedCollection.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityStreams/Types/ASOrderedCollection.cs @@ -43,6 +43,19 @@ internal sealed class ASOrderedCollectionItemsConverter : ASCollectionItemsConve serializer.Serialize(writer, value); writer.WriteEndObject(); } + + public override object? ReadJson( + JsonReader reader, Type objectType, object? existingValue, + JsonSerializer serializer + ) + { + if (reader.TokenType != JsonToken.StartArray) throw new Exception("this shouldn't happen"); + + var obj = JArray.Load(reader); + return obj.Count == 0 + ? null + : obj.SelectToken("$.[*].@list")?.Children().Select(ASObject.Deserialize).OfType().ToList(); + } } public sealed class ASOrderedCollectionConverter : JsonConverter