दिलचस्प पोस्ट
16-, 32- और 64-बिट आईईईई -754 प्रणालियों में कितनी संख्याओं का प्रतिनिधित्व किया जा सकता है? पैटर्न के बाद सामग्री के लिए grep कॉलम की गणना किसी अन्य कॉलम से की गई है? कोणीय: केवल एक संख्या में पाठ बॉक्स में टाइप करने की अनुमति देता है एक पूंछ-एफ जब एक पैटर्न से मिलान करें पहले किसी लोकल व्हेरिएबल को निर्दिष्ट किए बिना, किसी फ़ंक्शन द्वारा MATLAB सरणी को कैसे लौटाया जा सकता है? एक ईमेल इनबॉक्स तक पहुंचने के लिए .NET घटक की अनुशंसाएं कैसे jQuery का उपयोग कर एक तत्व के शीर्षक विशेषता को बदलने के लिए स्थानीय होस्ट पर रीकैपचा उपयोग करना कैसे जावास्क्रिप्ट के द्वारा एक मैक कमांड कुंजी को कैप्चर करता है? एनिमेशन के माध्यम से एक गतिविधि में स्वैप टुकड़ा Xcode 6 iPhone सिम्युलेटर आवेदन समर्थन स्थान गिट में हैश टकराव जब इनपुट परिवर्तन होते हैं तो Angular2 गतिशील इनपुट फ़ील्ड फ़ोकस खो देता है थ्रेड.स्टॉप () – बहिष्कृत

JSON.पार्स बनाम eval ()

मेरा स्पाइडर संवेदना मुझे चेतावनी देती है कि आने वाले जेएसओएन को पार्स करने के लिए eval() का उपयोग करना एक बुरा विचार है मैं बस सोच रहा हूं कि अगर JSON.parse() – जो मुझे लगता है कि जावास्क्रिप्ट का हिस्सा है और ब्राउज़र-विशिष्ट फ़ंक्शन नहीं है – अधिक सुरक्षित है

Solutions Collecting From Web of "JSON.पार्स बनाम eval ()"

यदि आप eval का उपयोग करते हैं, तो आप हमलों के प्रति अधिक संवेदनशील हैं : जेएसओएन जावास्क्रिप्ट का सबसेट है और जेसन। पीआरएस सिर्फ JSON पार्स करता है जबकि ईवाल सभी जेएस अभिव्यक्तियों के लिए दरवाजा खोलता है।

सभी JSON.parse कार्यान्वयन सबसे अधिक उपयोग eval()

JSON.parse डगलस JSON.parse के समाधान पर आधारित है, जो कि eval() का उपयोग करता है, ठीक JSON.parse 497 पर ।

 // In the third stage we use the eval function to compile the text into a // JavaScript structure. The '{' operator is subject to a syntactic ambiguity // in JavaScript: it can begin a block or an object literal. We wrap the text // in parens to eliminate the ambiguity. j = eval('(' + text + ')'); 

JSON.parse का लाभ यह है कि यह पुष्टि करता है कि तर्क सही JSON वाक्यविन्यास है।

सभी ब्राउज़र्स के पास मूल JSON समर्थन नहीं है, इसलिए ऐसे समय होंगे जहां आपको eval() को JSON स्ट्रिंग में उपयोग करना होगा। http://json.org से JSON पार्स्टर का उपयोग करें, क्योंकि यह आपके लिए बहुत आसान है।

Eval() एक बुराई है लेकिन कुछ ब्राउज़रों के खिलाफ इसकी एक आवश्यक बुराई है लेकिन आप इसे से बच सकते हैं, ऐसा करते हैं !!!!!

यदि आप eval साथ JSON को पार्स करते हैं, तो आप स्ट्रिंग को बिल्कुल कुछ भी शामिल करने की अनुमति दे रहे हैं, इसलिए केवल डेटा सेट होने के बजाय, आप फ़ंक्शन कॉल्स निष्पादित कर सकते हैं, या जो भी हो

इसके अलावा, जेएसएएन के parse एक अनुकूल पैरामीटर, रिवायवर को स्वीकार करता है, जो आपको विशिष्ट मानों से निपटने के तरीके को निर्दिष्ट करने देता है, जैसे डेटासेट (इनलाइन प्रलेखन में अधिक जानकारी और उदाहरण)

JSON.parse () और eval () क्या स्वीकार करेंगे के बीच अंतर है। इस पर eval की कोशिश करो:

var x = "{\" shoppingCartName \ ": \" शॉपिंगकार्ड: 2000 \ "}"

 eval(x) //won't work JSON.parse(x) //does work 

यह उदाहरण देखें।

JSON सिर्फ जावास्क्रिप्ट का एक सबसेट है लेकिन eval पूरी जावास्क्रिप्ट भाषा का मूल्यांकन करता है, न कि सिर्फ एसएससेट जो कि JSON है