2010-11-24 14 views
18

संभव डुप्लिकेट:
JSON: why are forward slashes escaped?JSON में एक बचने योग्य चरित्र स्लैश क्यों है?

json.org राज्यों, कि फ़ॉरवर्ड स्लैश (उर्फ सोलिडस, /) भाग निकले जा सकता है:

"\/" 

हालांकि, नहीं छोड़ा जाएगा स्लैश मान्य हैं, भी:

"/" 

इसके पीछे तर्कसंगत क्या है? क्या यह जावास्क्रिप्ट जड़ों से आता है? (आईई, "</script>" ब्राउज़र-आधारित जावास्क्रिप्ट में एक समस्या है, Douglas Crockford's comment देखें) या इसका कोई अन्य कारण है?

+0

हाँ, यह सच है। दूसरे को खोजने के लिए धन्यवाद। इसे बंद करने के लिए वोटिंग। – Boldewyn

+0

अन्य पाठक साथ ब्राउज़ कर रहे हैं: क्या आप भी इसे 1580647 के डुप्लिकेट के रूप में बंद करने के लिए वोट देंगे? – Boldewyn

उत्तर

2

ऐसा लगता है, मेरा पहला विचार सही था।

'\/' === '/' जावास्क्रिप्ट में, और JSON almost मान्य जावास्क्रिप्ट है। हालांकि, अन्य अनदेखा क्यों बचते हैं (जैसे \z) JSON में अनुमति नहीं है?

इसके लिए कुंजी http://www.cs.tut.fi/~jkorpela/www/revsol.html पढ़ रही थी, इसके बाद http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.2 थी। स्लैश एस्केप की सुविधा जेएसओएन को एचटीएमएल (एसजीएमएल) और एक्सएमएल में एम्बेडेड करने की अनुमति देती है।

+0

जेएसओएन में बैकस्पेस के लिए \ b का उपयोग किया जाता है, जिससे z z z चीजों को भ्रमित कर देगा। – kyrias

6

मैंने अभी अपने ब्लॉग पर a review of this issue प्रकाशित किया है। मुझे लगता है कि आप सही हैं, यही कारण है। यह भी ध्यान रखें कि स्लैश एकमात्र मानक चरित्र है जिसे बचने की अनुमति है।

आमतौर पर JSON एनकोडर एक ही कारण के लिए गलत यह करने के लिए और किसी भी स्लैश वे रास्ते खोजने के बचने, जबकि </script> में केवल स्लेश भाग निकले किया जाना चाहिए, और शायद सभी लोगों जावास्क्रिप्ट RegExp /<\/\w+/ के अनुरूप,।

संपादित करें: निश्चित ब्लॉग लिंक।

+0

एचएम, दिलचस्प। लेकिन आप भी, धारणा के स्रोत को जानने के लिए नहीं होते? – Boldewyn

+0

नहीं, मुझे नहीं, क्षमा करें। – Ando

+0

"यह भी ध्यान रखें कि स्लैश एकमात्र मानक चरित्र है जिसे बचने की अनुमति है।" <गलत सभी पात्रों से बच सकते हैं, कुछ अन्य तरीकों के माध्यम से। – kyrias

संबंधित मुद्दे