繁体   English   中英

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

[英]Put a default value if the string is null during deserializing

我有这样的模型:

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”它不起作用。

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

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

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; }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM