如果在反序列化期间字符串为null,则设置默认值

时间:2016-07-19 16:49:14

标签: c# json.net

我有一个这样的模型:

public class Artwork
{
    public string small { get; set; }
    public string medium { get; set; }
    public string large { get; set; }
    public string @default { get; set; }
}

我使用此模型反序列化图稿路径。当其中一个字符串为null时,我想放置一个默认路径,这样我仍然可以显示图片。我试图使用Json.NET库中的一些属性:

[DefaultValue("path/to/any/picture")]
[JsonProperty(DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]

但它不起作用,反序列化时抛出“System.NullReferenceException”。

如果在反序列化时获取路径并在路径为空时显示默认图片,如何设置显示这些图片?

1 个答案:

答案 0 :(得分:0)

我设法像这样解决我的问题

public class Artwork
{
    private static string defaultAtwork = "https://pixabay.com/static/uploads/photo/2016/01/06/07/06/bokeh-1123696_960_720.jpg";
    private string _small = defaultAtwork;
    private string _medium = defaultAtwork;
    private string _large = defaultAtwork;
    private string _default = defaultAtwork;

    public string small
    {
        get { return _small; }
        set { _small = value; }
    } 
    ...
}

public class Album
{
    private Artwork _artwork = new Artwork();
    [JsonProperty(NullValueHandling = NullValueHandling.Include)]
    public Artwork artwork
    {
        get { return _artwork; }
        set { _artwork = value; }
    }