如果JSON Serializer传递为null,则为默认行为?

时间:2015-11-11 18:31:37

标签: c# json serialization json.net

我有一个ISerializer接口,有几个不同的实现和一个简单的合同:

string Serialize<T>(T data);
T Deserialize<T>(string serializedData);

其中一个实现是JSON序列化程序。我正在讨论如果传递给这两种方法中的值为null,它应该如何表现。它应该返回null吗?还是空字符串?我意识到这是一个设计决定,我很好奇其他人如何处理它以及应该考虑哪些因素或设计因素?感谢。

1 个答案:

答案 0 :(得分:0)

如果对象为null,则应将其序列化为JSON IObservable<IList<T>> query = source .Publish(obs => obs .Buffer(() => obs.Take(1).IgnoreElements() .Concat(Observable.Return(default(T)).Delay(duration, scheduler)) .Amb(obs.IgnoreElements()))); .Publish() .RefCount(); 并反序列化为C#null(反之)。

如果T是非可空类型(例如nullint),您将遇到问题。我不确定该怎么做 - 通常行为(例如在json.net中)是返回零值 - 例如,尝试将null反序列化为int返回一个int 0。