在我的網絡應用程序中,我有一些使用JavaScript編寫的複雜對象(即嵌套數組,對象包含對象等),我的應用程序的性質依賴於這些。我需要將所有數據發送到PHP,以便我可以將其保存到數據庫。什麼是將我的對象發送到PHP的高效,簡單的方法?我嘗試了JSON,但得到了'太多遞歸'這樣的奇怪錯誤,我猜測這意味着我的對象太複雜了。那麼是否有一個好的腳本庫可以做到這一點?提前致謝。用ajax發送複雜對象的好方法是什麼?
編輯:
所以JSON然後。我試圖更新JSON庫無濟於事,我現在正在尋找循環引用。
在我的網絡應用程序中,我有一些使用JavaScript編寫的複雜對象(即嵌套數組,對象包含對象等),我的應用程序的性質依賴於這些。我需要將所有數據發送到PHP,以便我可以將其保存到數據庫。什麼是將我的對象發送到PHP的高效,簡單的方法?我嘗試了JSON,但得到了'太多遞歸'這樣的奇怪錯誤,我猜測這意味着我的對象太複雜了。那麼是否有一個好的腳本庫可以做到這一點?提前致謝。用ajax發送複雜對象的好方法是什麼?
編輯:
所以JSON然後。我試圖更新JSON庫無濟於事,我現在正在尋找循環引用。
如果你的對象有循環引用,幾乎任何JSON庫都會有太多的遞歸錯誤。我嘗試過的javascript實現的遞歸限制遠遠超過了100級,所以你的對象必須是真的是複雜。
在嘗試使用任何類型的庫對序列化對象之前,您需要檢測並消除循環引用。
編輯:剛剛測試了Firefox 3.5,它在3000遞增遞增。
JSON 是正確的答案。
我懷疑你的JSON庫破壞或者限制太多。檢查JSON,看看它是否格式良好,如果是,找一個更好的庫來處理你的數據結構。
也考慮簡化數據結構。爲了您自己的利益,這可能太複雜了。
我同意 - JSON是答案。我想你所遇到的錯誤可能是你正在使用的庫的一部分...
http://markmail.org/message/2d5lvmdeg2qg55qr
提到了同樣的錯誤。
我已經使用了許多複雜的JSON對象,從來沒有遇到過這個錯誤 - 我會說別的東西在玩。
我嘗試了你的鏈接說,我仍然有同樣的錯誤,對不起。 – Dan
您有可能發佈導致錯誤的數據樣本嗎? 您可能還想通過驗證程序運行數據以查看它是否標記了任何內容。 http://www.jsonlint.com/ –
對象是循環的,還是不是樹?例如。 A = [B,C],B = [D],C = [D],D = []。 JSON只能表示樹木的對象。 – Managu
有沒有一種簡單的方法來查找循環,還是我必須手動執行?我在手動猜測,對吧? – Dan
http://en.wikipedia.org/wiki/Cycle_detection – Breton