如何同时使用Newtonsoft.Json反序列化检查Null值 - 分配默认值以空值
问题描述:
在EAN API响应一些参数的详细HotelListRoomType的答复少人失踪,一些参数也越来越空值。对于每个单独的酒店,答复都会改变。如何同时使用Newtonsoft.Json反序列化检查Null值 - 分配默认值以空值
这是我的问题如何在 期间识别空值和错过参数将序列化并将空值分配给默认值。
示例代码我试图像这样分配空值
public class RoomImage
{
private string useurl = "~/no-picture-available.jpg";
[DefaultValue("~/no-picture-available.jpg")]
public string url { get { return useurl; } set { useurl = value; } }
}
但不是反序列化过程的工作 - 你可以分享我,你有如何实现这一目标的任何想法。
答
为您发布这个特殊的例子,你没有反序列化期间处理null
值。您可以阅读RoomImage
类的url
属性中的DefaultValue
属性。下面是代码:
public class RoomImage
{
private string useurl;
[DefaultValue("~/no-picture-available.jpg")]
public string url
{
get
{
return !string.IsNullOrWhiteSpace(useurl)
? useurl
: ((DefaultValueAttribute)
(TypeDescriptor.GetProperties(this)["url"].Attributes[
typeof (DefaultValueAttribute)])).Value.ToString();
}
set { useurl = value; }
}
}
使用此代码,如果一个值分配给url
属性,当您尝试访问它,它会返回一个特定的值。如果url
属性是null
,empty
或只包含空格的字符串,该DefaultValue
将被退回。
json在反序列化之前是什么样的?它是如何被序列化的第一位? – Jeff