Json.NET反序列化-禁止数组中的空项目

时间:2018-08-22 14:11:01

标签: .net json.net deserialization

我正在使用Json.NET。有没有简单的方法可以在反序列化期间禁止数组中的空项目?这是描述我要实现的目标的测试

public class Container
{
    public IReadOnlyCollection<ContainerItem> Array { get; set; }
}

public class ContainerItem
{
    public int Value { get; }

    public ContainerItem(int value)
    {
         Value = value;
    }
}

[Fact]
public void ShouldThrowDeserializerErrorWhenArrayHasNullItems()
{
    // here is null item which I don't like
    var json = @"{
         ""array"" : 
         [
             { ""value"" : 1 },
             { ""value"" : 2 },
             null
         ]
     }";

    Action action = () => JsonConvert.DeserializeObject<Container>(json);

    action.ShouldThrow<JsonSerializationException>();
}

我找到了属性[JsonArray(AllowNullItems = false)]。我可以以某种方式使用它而不创建代表数组容器的新类吗?我想避免这种情况。

0 个答案:

没有答案