2015-11-11 54 views
-1

我有幾個不同實現的ISerializer接口和一個簡單的合同:JSON序列化程序的默認行爲是否爲空?

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

其中實現的是一個JSON序列。我在辯論如果傳入這些方法中的任何一個的值爲null,它應該如何表現。它應該返回null嗎?或空字符串?我意識到這是一個設計決策,我很好奇其他人如何處理它,以及哪些陷阱或設計考慮因素應該影響我的決定?謝謝。

+0

如果不重複,則相關:http ://stackoverflow.com/questions/21120999/representing-null-in-json – Habib

+0

@Habib不,它不是重複的。我不問如何處理從JSON轉換爲/時,爲空的PROPERTY,我問當整個對象爲空時要做什麼 – snappymcsnap

回答

0

如果一個對象爲null,那麼它應該被序列化爲JSON null並反序列化爲C#null(以及相反)。

如果T是非空類型(例如intTimespan),您將遇到問題。我不知道該怎麼做 - 通常行爲(例如在json.net中)是返回一個零值 - 例如,嘗試將null反向串行化爲int返回一個int 0。

相關問題