Simplifies json reading/writing by adding some extensions methods
Example of usage:
public class JsonConverter : JsonConverter<Line>
{
public override Line? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if(typeToConvert != typeof(Line))
throw new ArgumentException($"Invalid type ({typeToConvert}).", nameof(typeToConvert));
if(reader.TokenType == JsonTokenType.Null)
return null;
Line line = new();
reader.ReadObjectProperties((ref reader, propertyName) => <--------
{
if(propertyName.SequenceEqual("Keys"u8)) <--------
{
reader.ReadArray((ref reader, index) => <--------
{
line.Add(reader.getByte());
});
}
}
return line;
}
}
All Features:
- JsonReadException
- Utf8JsonReader extensions
- void AssertToken(JsonTokenType tokenType)
- JsonTokenType ReadOrThrow()
- JsonTokenType ReadTokenOrThrow(params IEnumerable<JsonTokenType> allowedTokenTypes)
- byte ReadByte()
- short ReadInt16()
- int ReadInt32()
- long ReadInt64()
- sbyte ReadSByte()
- ushort ReadUInt16()
- uint ReadUInt32()
- ulong ReadUInt64()
- float ReadSingle()
- double ReadDouble()
- decimal ReadDecimal()
- bool ReadBoolean()
- DateTime ReadDateTime()
- DateTimeOffset ReadDateTimeOffset()
- Guid ReadGuid()
- string? ReadString()
- void ReadObjectProperties(ReadPropertyDelegate readPropertyAction)
- void ReadObject(ReadPropertyDelegate readPropertyAction)
- void ReadArrayEntries(ReadArrayEntryDelegate readArrayEntryAction)
- void ReadArray(ReadArrayEntryDelegate readArrayEntryAction)