J'ai passé au peigne fin MS docs mais je ne trouve pas d'attribut équivalent à NewtonSoft JsonPropertyRequired .
Ce que je recherche:
public class Videogame
{
[JsonProperty(Required = Required.Always)]
public string Name { get; set; }
}
Suis-je en train de manquer quelque chose ou ce niveau de validation n'existe-t-il pas dans la bibliothèque Microsoft?
J'utilise le générique [Required]
attribut fourni dans System.ComponentModel.DataAnnotations
. Je l'ai utilisé à la fois avec Newtonsoft.Json
et System.Text.Json
.
Veuillez essayer cette bibliothèque que j'ai écrite comme une extension de System.Text.Json pour offrir les fonctionnalités manquantes: https://github.com/dahomey-technologies/Dahomey.Json .
Vous trouverez un support pour JsonRequiredAttribute.
public class Videogame
{
[JsonRequired(RequirementPolicy.Always)]
public string Name { get; set; }
}
Configurez les extensions json en appelant JsonSerializerOptions la méthode d'extension SetupExtensions définie dans l'espace de noms Dahomey.Json. Désérialisez ensuite votre classe avec l'API Sytem.Text.Json standard.
JsonSerializerOptions options = new JsonSerializerOptions();
options.SetupExtensions();
const string json = @"{""Name"":""BGE2""}";
Videogame obj = JsonSerializer.Deserialize<Videogame>(json, options);