JSON सिंटैक्स में चार स्पेस वर्ण हैं
RFC 8259 में U+0020, टैब U+0009, नई पंक्ति U+000A और कैरिज रिटर्न U+000D हैं। NBSP U+00A0 इनमें नहीं है। formatJSON कोलन के बाद सामान्य स्पेस स्वीकार करता और NBSP अस्वीकार करता है। \u JavaScript स्ट्रिंग एस्केप है जो चलने पर वर्ण बनाता है।
formatJSON('{"n":\u00201}'); // accepted
formatJSON('{"n":\u00A01}'); // throwsस्ट्रिंग के अंदर NBSP डेटा है
डबल कोट के अंदर NBSP इस उदाहरण में वैध है। फ़ॉर्मैटिंग और मिनिफ़िकेशन इसे रखते हैं। पूरे स्रोत में बदलने से A और B के बीच कोड पॉइंट 160 से 32 हो जाता है। सिंटैक्स सुधारते समय डेटा के स्पेस अंधाधुंध न बदलें।
const source = '{"text":"A\u00A0B"}';
JSON.parse(formatJSON(source, 0).output).text.codePointAt(1) // 160
JSON.parse(source.replaceAll("\u00A0", " ")).text.codePointAt(1) // 32त्रुटि पंक्ति, कॉलम और त्रुटि स्थान पर जाने का नियंत्रण देखें। मूल रखें, स्ट्रिंग के बाहर गलत स्पेस फिर लिखें और जाँचें। NBSP की अलग पहचान या स्वतः सुधार सुविधा नहीं है। सिंटैक्स जाँच API स्कीमा नहीं जाँचती।
अक्सर पूछे जाने वाले प्रश्न
क्या मिनिफ़िकेशन गलत स्पेस सुधारता है?
नहीं। formatJSON आउटपुट से पहले सिंटैक्स जाँचता है, इसलिए बाहर का NBSP मिनिफ़िकेशन में भी अस्वीकृत है। स्ट्रिंग के अंदर यह बना रहता है।