.net 使用System.Text.Json将集合反序列化为空列表而不是`null`

toe95027  于 2023-08-08  发布在  .NET
关注(0)|答案(1)|浏览(106)

我使用System.Text.JSON。
我注意到,当集合属性没有值时,它被设置为null。这有点不方便,因为它每次都要检查null。
我希望序列化器将它们初始化为一个空列表(List)或类似的列表。

tkqqtvp1

tkqqtvp11#

在类构造函数中,可以示例化集合。因此,它永远不会是null,除非null在json中显式提供

public class Sample
{
    public List<int> List { get; set; }

    public Sample()
    {
        this.List = new List<int>();
    }
}

var options = new JsonSerializerOptions()
{
    DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault
};
var result = JsonSerializer.Deserialize<Sample>("{}", options);

Debug.Assert(result.List != null);

字符串

相关问题