将类似数据从json反序列化为类对象时。是否更有效:
A)有一个可能具有null属性的类吗?
B)有一个单独的类,只有你期望看到的属性吗?
例如:在我想要这样的数据的情况下:
public class Author
{
public Data data { get; set; }
}
public class Data
{
public string first { get; set; }
public string prev { get; set; }
public string next { get; set; }
public string self { get; set; }
public string type { get; set; }
public string id { get; set; }
}
我们假设在这种情况下,只有id
和type
填充Author
而我们永远不会期望其他人。
然后执行以下操作会更有效/更好吗?
public class Author
{
public AuthorData data { get; set; }
}
public class AuthorData
{
public string type { get; set; }
public string id { get; set; }
}
这显然是Data
可能在不同地方以不同方式使用的情况,因此在不同时间其他属性为null。
通过回收Data
,我们的代码库显然会有更少的对象,但这样做会如何影响应用程序的执行?
使用通常类型化的类进行反序列化是“错误的”吗?
答案 0 :(得分:1)
虽然正如评论中所说的那样,在保留null属性方面存在最小的速度和大小差异,如果你有能力忽略那些次要的优点,我将包含始终包含没有值的属性。
为什么呢?这意味着在将JSON解析为接收端的相应类之前,接收方不必首先检查每个属性是否存在。
另外,如果我在C#应用程序中序列化你的JSON,那么该属性将会再次出现在默认值中,我仍然必须构建如何处理属性的空值,所以你可能也是如此通过至少知道财产将始终存在,使接收者更容易。