MS docs をくまなく調べましたが、 NewtonSoft JsonPropertyRequired に相当する属性が見つかりません。
私がこれを探しているもの:
public class Videogame
{
[JsonProperty(Required = Required.Always)]
public string Name { get; set; }
}
何か足りないのですか、このレベルの検証はMicrosoftライブラリに存在しませんか?
[Required]
に同梱されている一般的なSystem.ComponentModel.DataAnnotations
属性を使用しています。 Newtonsoft.Json
とSystem.Text.Json
の両方で使用しました。
System.Text.Jsonの拡張機能として作成した、欠落している機能を提供するこのライブラリを試してください: https://github.com/dahomey-technologies/Dahomey.Json 。
JsonRequiredAttributeのサポートが見つかります。
public class Videogame
{
[JsonRequired(RequirementPolicy.Always)]
public string Name { get; set; }
}
名前空間Dahomey.Jsonで定義されている拡張メソッドSetupExtensionsをJsonSerializerOptionsで呼び出すことにより、json拡張をセットアップします。次に、通常のSytem.Text.Json APIを使用してクラスを逆シリアル化します。
JsonSerializerOptions options = new JsonSerializerOptions();
options.SetupExtensions();
const string json = @"{""Name"":""BGE2""}";
Videogame obj = JsonSerializer.Deserialize<Videogame>(json, options);