JsonPropertyAttribute required

April 6, 2024 ยท View on GitHub

This sample uses Argon.JsonPropertyAttribute to set Argon.Required which is used during deserialization to validate the presence of required JSON properties.

public class Videogame
{
    [JsonProperty(Required = Required.Always)]
    public string Name { get; set; }

    [JsonProperty(Required = Required.AllowNull)]
    public DateTime? ReleaseDate { get; set; }
}

snippet source | anchor

var json = """
    {
      'Name': 'Starcraft III',
      'ReleaseDate': null
    }
    """;

var starcraft = JsonConvert.DeserializeObject<Videogame>(json);

Console.WriteLine(starcraft.Name);
// Starcraft III

Console.WriteLine(starcraft.ReleaseDate);
// null

snippet source | anchor