[backend/federation] Fix (de-)serialization of unordered ASCollection(Page) objects (ISH-427)
This commit is contained in:
parent
b62a0ad46e
commit
8345f35a5f
2 changed files with 14 additions and 1 deletions
|
@ -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<ASObject>().ToList();
|
||||
: obj.Select(ASObject.Deserialize).OfType<ASObject>().ToList();
|
||||
}
|
||||
|
||||
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
|
||||
|
|
|
@ -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<ASObject>().ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ASOrderedCollectionConverter : JsonConverter
|
||||
|
|
Loading…
Add table
Reference in a new issue