2013-06-26 107 views
0

我打算將JS對象存儲在數據庫中,但使用JSON.stringify(object)時,導航器等對象返回「Uncaught RangeError:Maximum call stack size exceeded」。序列化爲JSON大型JS對象

我該如何去序列化到像導航器對象(無修剪)的JSON大javascript對象?

+0

請提供後端和前端代碼。還包括正確的代碼語言。謝謝! – abc123

+0

考慮使用基於文檔的數據庫(例如MongoDB),並重新考慮數據的結構。 – Brad

+3

這不是導航器的大小,這是問題,它是自我引用的無限循環,讓你。 – dandavis

回答

1

您可以在JSON上放置一個安全「break」,使用JSON.stringify很少使用的第二個參數。 這有助於理解爲什麼航海家從未有足夠的空間:

var used=[]; 
var str=JSON.stringify(navigator, function(a,b,c){ 
    if(used.indexOf(b)===-1 && used.length < 100){ 
    used.push(b); 
    return b; 
    } 
}); 

alert(str); 

//shows: {"geolocation":{},"webkitPersistentStorage":{},"webkitTemporaryStorage":{},"onLine":true,"vendorSub":"","vendor":"Google Inc.","productSub":"20030107","product":"Gecko","mimeTypes":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{"0":{"enabledPlugin":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} 

你可以得到後僅有100代表了點,但它可以走了一夜,只要它可以... 我敢打賭,有一個getter是每次調用都會發出一個新的對象,所以你永遠不會看到同一個對象兩次。

更改100至5000崩潰鉻,但沒有提供新的屬性。

1

如果數據非常龐大,需要插入到數據庫中,那麼它肯定能夠被標準化爲更多的子實體和分組,從而將數據帶到更小的塊。然後遍歷這些數據組並將它們轉換爲json並進一步保存可能對您有所幫助。

+0

這既不是一個答案,也不是一個邏輯思想。 –