मेरे पास एक बहुत बड़ी JSON स्ट्रिंग है जिसे मुझे ब्राउज़र ब्राउज़र में पार्स करने की आवश्यकता है। अभी, कुछ ब्राउज़रों में, मैं स्टैक स्पेस से बाहर चला गया। दुर्भाग्यवश, मेरे JSON में उपयोगकर्ता स्ट्रिंग्स हो सकते हैं, इसलिए मैं eval का उपयोग नहीं कर सकता या अन्यथा ब्राउज़र को इसका विश्लेषण नहीं कर सकता।गैर-पुनरावर्ती जावास्क्रिप्ट JSON पार्सर
मैंने कुछ मानक जावास्क्रिप्ट JSON पार्सर्स को देखा है, और वे रिकर्सिव हैं। आश्चर्य है कि अगर कोई भी किसी भी JSON पार्सर के बारे में जानता है जो सुरक्षित और गैर-पुनरावर्ती है। मैं इसके लिए कम सुविधाओं के लिए तैयार रहूंगा - मेरे पास बस वस्तुओं की एक विशाल सरणी है।
वैकल्पिक रूप से, अगर कोई ऐसे व्यक्ति को जानता है जो संशोधित करना आसान हो सकता है, तो यह भी एक बड़ी मदद होगी।
संपादित करें: निकट निरीक्षण पर स्टैक्स ओवरफ़्लो को पार्सर के अंदर उपयोग किए जाने वाले eval() द्वारा फेंक दिया जाता है। तो, यह रिकर्सिव होना चाहिए।
अच्छी तरह से, दोबारा घोंसले वाली संरचना को पार्स करने के लिए, एक बार फिर से एक ही प्रक्रिया के माध्यम से जाना पड़ता है। क्या आप वाकई संरचना वास्तव में मान्य हैं? "बहुत बड़ा" कितना बड़ा है? – Pointy
यह कानूनी है - यह कुछ हजार वस्तुओं की एक सरणी है। जब यह एक निश्चित आकार में आता है, eval() इसे पार्स नहीं कर सकता (ठीक है, आईई कर सकता है, लेकिन अन्य ब्राउज़र नहीं कर सकते हैं) –
@ पॉइंट हां यह एक ही प्रक्रिया के माध्यम से जाएगा, लेकिन इसे उपयोग करने की आवश्यकता नहीं है ढेर, जो अंतरिक्ष से बाहर हो सकता है।संभवतः, एक गैर-पुनरावर्ती व्यक्ति ढेर में कुछ अन्य समतुल्य डेटा-संरचना बनाता है (जो बड़ा है, उम्मीद है) –