2017-02-18 26 views
1

我的Web應用程序中有一個簡單的表單,它將JSON對象保留到我的Firebase數據庫中。並非每個字段都是必需的,所以當發送的對象被構​​建時,它可能有幾個undefined屬性。使用Firebase處理未定義的值

由於Firebase在嘗試堅持undefined值時會引發錯誤(更不用說,您不應該在JSON對象上有undefined值),我想知道是否有框架提供的任何方法來覆蓋所有未定義值爲null甚至是空字符串;我還沒有找到在線解決方案。

最壞的情況,我可以手動設置所有未定義的屬性null但我寧願這樣做

對此有何意見或建議?

非常感謝!

回答

1

我不相信這有什麼特別的方法,因爲JSON的性質期望傳入一個值,在這種情況下可以是'null'或空字符串。

不幸的是,現在可能是這樣,我認爲最好在客戶端處理這個問題,如果沒有數據輸入,手動添加'null'或空字符串。然後,您可以稍後使用類似'snapshot.val()!== null'的方式在Firebase中的該位置測試數據。

3

我的解決辦法是簡單地stringify()replacer合併對象全部更換不定值

obj = JSON.parse(JSON.stringify(obj, function(k, v) { 
    if (v === undefined) { return null; } return v; 
})); 

然後我將其轉換回對象與JSON parse()