2012-03-17 89 views
3

在服務器上,我序列化我的對象,有時候,某些屬性爲空。在頁面上,當我解析字符串時,空屬性正確反序列化,並在我的JavaScript中,我測試以查看可能是null的屬性是否真的爲null或沒有使用它們之前;像這樣:json和空值

if (TheObject.TheProp && TheObject.TheProp.length) {...} 

它不會崩潰,它的工作原理。我的問題是:我應該在服務器上爲每個屬性填充一些東西(比如「」,字符串爲0,數字爲0),因爲它被認爲是很好的做法,或者可以在頁面上有空屬性嗎?

感謝您的建議。

+1

如果一個屬性是'null',那麼它的最大語義就是保持'null'。畢竟JSON有一個'null'值;我沒有看到空字符串有什麼優勢。 – pimvdb 2012-03-17 16:20:37

+0

那麼''''比'null'短兩個字符,但在我看來,空字符串和空字符之間存在顯着的語義差異。至少,當然可以。 – Pointy 2012-03-17 16:20:46

回答

1

在JavaScript中null是一個值,就像""0。如果您已經定義了該值,則該值爲undefined,但未分配值,但即使這樣也沒問題。儘管如此,undefined絕不會出現在JSON數據結構中。

只要確保你正確處理null,你應該沒問題。

1

這真的取決於你。如果空值""與不存在的值null之間存在差異,則您希望將null保留爲不存在值的標記,將""保留爲空值的市場。

如果兩者之間的應用程序沒有差異,則可以用""null表示空字符串值。在某些情況下,使用""更簡單,因爲它是一個字符串,因此您可以將所有值作爲字符串處理,但您使用的值完全取決於您自己的編碼便利性。

沒有哪一個答案是更正確的。

+0

好的,謝謝:我會離開我的對象,繼續通過(Object.Property)檢查null, – frenchie 2012-03-17 17:06:03