ಈ ಉಪಕರಣದ ಬಗ್ಗೆ
JSON ಫಾರ್ಮ್ಯಾಟಿಂಗ್ (ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರೆಟಿ-ಪ್ರಿಂಟಿಂಗ್ ಅಥವಾ ಬ್ಯೂಟಿಫಿಕೇಶನ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ) ಕಾಂಪ್ಯಾಕ್ಟ್ JSON ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ವೈಟ್ಸ್ಪೇಸ್ ಅನ್ನು ಸೇರಿಸುತ್ತದೆ - ಲೈನ್ ಬ್ರೇಕ್ಗಳು, ಇಂಡೆಂಟೇಶನ್, ಸ್ಥಿರವಾದ ಅಂತರ - ರಚನೆಯನ್ನು ಮಾನವ ಓದುಗರಿಗೆ ಗೋಚರಿಸುವಂತೆ ಮಾಡುತ್ತದೆ. ಕಾಂಪ್ಯಾಕ್ಟ್ JSON ಪ್ರಸರಣಕ್ಕೆ ಸರಿಯಾದ ಸ್ವರೂಪವಾಗಿದೆ: ಇದು ತಂತಿ ಮತ್ತು ಸಂಗ್ರಹಣೆಯ ಮೇಲೆ ಬೈಟ್ಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ JSON ಪರಿಶೀಲನೆಗೆ ಸರಿಯಾದ ಸ್ವರೂಪವಾಗಿದೆ: ಇಂಡೆಂಟ್ ಮಾಡಲಾದ ಕ್ರಮಾನುಗತವು ನೆಸ್ಟೆಡ್ ರಚನೆಯನ್ನು ಒಂದು ನೋಟದಲ್ಲಿ ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ, ವ್ಯತ್ಯಾಸಗಳನ್ನು ಅರ್ಥಪೂರ್ಣಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಮಾನಸಿಕವಾಗಿ ಪಾರ್ಸ್ ಮಾಡದೆಯೇ ಡೆವಲಪರ್ಗಳಿಗೆ ನಿರ್ದಿಷ್ಟ ಕ್ಷೇತ್ರಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಅನುಮತಿಸುತ್ತದೆ.
ಈ ಫಾರ್ಮ್ಯಾಟರ್ ಮಾನ್ಯವಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಲು JSON ಇನ್ಪುಟ್ ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡುತ್ತದೆ, ನಂತರ ಅದನ್ನು ಸ್ಥಿರವಾದ ಇಂಡೆಂಟೇಶನ್ನೊಂದಿಗೆ ಮರು-ಹೊರಬಿಡುತ್ತದೆ. ಅಮಾನ್ಯವಾದ ಇನ್ಪುಟ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಸಮಸ್ಯೆಯನ್ನು ಸೂಚಿಸುವ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. ಮೂಲವು ಎಷ್ಟು ಕಾಂಪ್ಯಾಕ್ಟ್ ಅಥವಾ ಗೊಂದಲಮಯವಾಗಿದೆ ಎಂಬುದನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ ಮಾನ್ಯ ಇನ್ಪುಟ್ ಅನ್ನು ಮರು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾಗುತ್ತದೆ. ಇಂಡೆಂಟೇಶನ್ ಎರಡು ಸ್ಥಳಗಳಿಗೆ ಡೀಫಾಲ್ಟ್ ಆಗಿರುತ್ತದೆ, ಇದು ಸಾಮಾನ್ಯ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕನ್ವೆನ್ಶನ್ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ.
ಫಾರ್ಮ್ಯಾಟರ್ ಮಿನಿಫಿಕೇಶನ್ (ವಿಲೋಮ ಕಾರ್ಯಾಚರಣೆ) ಅನ್ನು ಸಹ ನೀಡುತ್ತದೆ, ಇದು ಚಿಕ್ಕದಾದ ಮಾನ್ಯವಾದ JSON ಅನ್ನು ಉತ್ಪಾದಿಸಲು ಎಲ್ಲಾ ಅನಗತ್ಯ ವೈಟ್ಸ್ಪೇಸ್ ಅನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಮಿನಿಫೈಡ್ ಔಟ್ಪುಟ್ ಉತ್ಪಾದನಾ ಪ್ರಸರಣಕ್ಕೆ ಉಪಯುಕ್ತವಾಗಿದೆ; ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿದ ಔಟ್ಪುಟ್ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಡೀಬಗ್ ಮಾಡಲು ಉಪಯುಕ್ತವಾಗಿದೆ.
JSON ಅನ್ನು ಏಕೆ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ
ಇಂಡೆಂಟೇಶನ್ ಇಲ್ಲದೆ ಆಳವಾಗಿ ನೆಸ್ಟೆಡ್ JSON ಅನ್ನು ಓದುವುದು ಮೂಲಭೂತವಾಗಿ ಅಸಾಧ್ಯ - ರಚನೆಯು ತಾಂತ್ರಿಕವಾಗಿ ಇರುತ್ತದೆ ಆದರೆ ಅಗೋಚರವಾಗಿರುತ್ತದೆ. ಮಧ್ಯಮ ಸಂಕೀರ್ಣವಾದ JSON ಸಹ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ನಿಂದ ಅಗಾಧವಾಗಿ ಪ್ರಯೋಜನ ಪಡೆಯುತ್ತದೆ. ಕೋಡ್ ವಿಮರ್ಶಕರು, API ಡೀಬಗರ್ಗಳು ಮತ್ತು ಡೇಟಾ ಪೇಲೋಡ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಯಾರಾದರೂ ನಿಜವಾಗಿ ಏನಿದೆ ಎಂಬುದನ್ನು ನೋಡಲು JSON ಅನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಬೇಕಾಗಿದೆ.
ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಕೂಡ ದೋಷಗಳನ್ನು ಹಿಡಿಯುತ್ತದೆ. ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಸಮಯದಲ್ಲಿ JSON ಪಾರ್ಸ್ ಮಾಡಲು ವಿಫಲವಾದಲ್ಲಿ, ದೋಷ ಸಂದೇಶವು ಸಿಂಟ್ಯಾಕ್ಸ್ ಸಮಸ್ಯೆಯ ನಿಖರವಾದ ಸ್ಥಾನವನ್ನು ಗುರುತಿಸುತ್ತದೆ - ಸಾಮಾನ್ಯವಾಗಿ ಕಾಣೆಯಾದ ಅಲ್ಪವಿರಾಮ, ಉಲ್ಲೇಖಿಸದ ಕೀ, ಅಥವಾ ಉತ್ಪಾದನಾ ವ್ಯವಸ್ಥೆಯು ಫ್ಲ್ಯಾಗ್ ಮಾಡದ ಸ್ಟ್ರೇ ಟ್ರೇಲಿಂಗ್ ಅಲ್ಪವಿರಾಮ. ಫಾರ್ಮ್ಯಾಟರ್ ಸರಳವಾದ JSON ವ್ಯಾಲಿಡೇಟರ್ ಆಗಿದೆ.
ತಾಂತ್ರಿಕ ವಿವರಗಳು
ಫಾರ್ಮ್ಯಾಟರ್ JSON.parse ಮತ್ತು JSON.stringify ಅನ್ನು ಬಳಸುತ್ತದೆ, ಪ್ರತಿ JavaScript ರನ್ಟೈಮ್ ಶಿಪ್ಗಳಲ್ಲಿ ಒಂದೇ ಜೋಡಿ. ಪಾರ್ಸಿಂಗ್ RFC 8259 (ಪ್ರಸ್ತುತ JSON ಸ್ಪೆಕ್) ಅನ್ನು ಅನುಸರಿಸುತ್ತದೆ, ಕಟ್ಟುನಿಟ್ಟಾದ JSON ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಆದರೆ JavaScript ಆಬ್ಜೆಕ್ಟ್ ಲಿಟರಲ್ಸ್, ಕಾಮೆಂಟ್ಗಳು, ಟ್ರೇಲಿಂಗ್ ಅಲ್ಪವಿರಾಮಗಳು ಮತ್ತು ಇತರ JSON5 ವಿಸ್ತರಣೆಗಳನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ.
JSON.stringify ಇಂಡೆಂಟ್ ಆರ್ಗ್ಯುಮೆಂಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ: ಸಂಖ್ಯೆ (ಸ್ಪೇಸ್) ಅಥವಾ ಸ್ಟ್ರಿಂಗ್ (ಟ್ಯಾಬ್ನಂತಹ ಕಸ್ಟಮ್ ಇಂಡೆಂಟ್ ಅಕ್ಷರ). ಫಾರ್ಮ್ಯಾಟರ್ ಎರಡೂ ಆಯ್ಕೆಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ. ಔಟ್ಪುಟ್ ಅನ್ನು ವಸ್ತುಗಳಿಗೆ ಮೂಲ ಕ್ರಮದಲ್ಲಿ ವಿಂಗಡಿಸಲಾಗಿದೆ (ಇಎಸ್ 2015 ಎಲ್ಲಾ ಪ್ರಮುಖ ಎಂಜಿನ್ಗಳಲ್ಲಿ ಆಸ್ತಿ ಅಳವಡಿಕೆ ಕ್ರಮವನ್ನು ಸಂರಕ್ಷಿಸಿರುವುದರಿಂದ).
ಎಡ್ಜ್ ಕೇಸ್ಗಳು: ಸಂಖ್ಯೆಯನ್ನು ಮೀರಿದ ದೊಡ್ಡ ಸಂಖ್ಯೆಗಳು. MAX_SAFE_INTEGER ಪಾರ್ಸ್ ಮಾಡಿದಾಗ ನಿಖರತೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತವೆ (ತಿಳಿದಿರುವ JSON ಮಿತಿ; 2^53 ಮೀರುವ ID ಗಳಿಗೆ ಸ್ಟ್ರಿಂಗ್ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಿ). ತಂತಿಗಳಲ್ಲಿ ಯೂನಿಕೋಡ್ ತಪ್ಪಿಸಿಕೊಳ್ಳುವುದು ಅಕ್ಷರಶಃ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ. ಪ್ರತಿ ಸಾಲಿನಿಂದ ಟ್ರೇಲಿಂಗ್ ವೈಟ್ಸ್ಪೇಸ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ.
ಪದೇ ಪದೇ ಕೇಳಲಾಗುವ ಪ್ರಶ್ನೆಗಳು
- ಈ ಉಪಕರಣವು ಯಾವ ರೀತಿಯ JSON ದೋಷಗಳನ್ನು ಪತ್ತೆ ಮಾಡುತ್ತದೆ?
- RFC 8259 JSON ನಿರ್ದಿಷ್ಟತೆಯ ಪ್ರಕಾರ ಕಾಣೆಯಾದ ಅಲ್ಪವಿರಾಮಗಳು, ಸಾಟಿಯಿಲ್ಲದ ಬ್ರಾಕೆಟ್ಗಳು/ಬ್ರೇಸ್ಗಳು, ಅಮಾನ್ಯವಾದ ಸ್ಟ್ರಿಂಗ್ ಎಸ್ಕೇಪಿಂಗ್, ಟ್ರೇಲಿಂಗ್ ಅಲ್ಪವಿರಾಮಗಳು, ಸಿಂಗಲ್-ಕೋಟೆಡ್ ಸ್ಟ್ರಿಂಗ್ಗಳು ಮತ್ತು ಇತರ ಸಿಂಟ್ಯಾಕ್ಸ್ ಉಲ್ಲಂಘನೆಗಳನ್ನು ಉಪಕರಣವು ಪತ್ತೆ ಮಾಡುತ್ತದೆ.
- ಇದು ತುಂಬಾ ದೊಡ್ಡ JSON ಫೈಲ್ಗಳನ್ನು ನಿಭಾಯಿಸಬಹುದೇ?
- ಹೌದು. ಫಾರ್ಮ್ಯಾಟರ್ ಸ್ಥಳೀಯ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪಾರ್ಸಿಂಗ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ JSON ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಇದು ಹಲವಾರು ಮೆಗಾಬೈಟ್ಗಳವರೆಗಿನ ಫೈಲ್ಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ. ಅತ್ಯಂತ ದೊಡ್ಡ ಫೈಲ್ಗಳಿಗಾಗಿ (50MB+), ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಸಮಯವು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.
- ಇದು ಕಾಮೆಂಟ್ಗಳೊಂದಿಗೆ (JSONC) JSON ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆಯೇ?
- ಪ್ರಮಾಣಿತ JSON ಕಾಮೆಂಟ್ಗಳನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ. ನಿಮ್ಮ ಇನ್ಪುಟ್ ಕಾಮೆಂಟ್ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ವ್ಯಾಲಿಡೇಟರ್ ಅವುಗಳನ್ನು ದೋಷಗಳೆಂದು ಫ್ಲ್ಯಾಗ್ ಮಾಡುತ್ತದೆ. JSONC ಬೆಂಬಲಕ್ಕಾಗಿ, ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡುವ ಮೊದಲು ಕಾಮೆಂಟ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ.
- ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ನನ್ನ ಡೇಟಾ ಮೌಲ್ಯಗಳನ್ನು ಬದಲಾಯಿಸುತ್ತದೆಯೇ?
- ಇಲ್ಲ. ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ವೈಟ್ಸ್ಪೇಸ್ ಮತ್ತು ಇಂಡೆಂಟೇಶನ್ ಅನ್ನು ಮಾತ್ರ ಸರಿಹೊಂದಿಸುತ್ತದೆ - ನಿಮ್ಮ ಡೇಟಾ ಪ್ರಕಾರಗಳು, ಮೌಲ್ಯಗಳು ಮತ್ತು ರಚನೆಯು ಒಂದೇ ಆಗಿರುತ್ತದೆ.
- JSON5 ವೈಶಿಷ್ಟ್ಯಗಳು ಬೆಂಬಲಿತವಾಗಿದೆಯೇ (ಕಾಮೆಂಟ್ಗಳು, ಟ್ರೇಲಿಂಗ್ ಅಲ್ಪವಿರಾಮಗಳು)?
- ಇಲ್ಲ. ಫಾರ್ಮ್ಯಾಟರ್ RFC 8259 ಅನ್ನು ಕಟ್ಟುನಿಟ್ಟಾಗಿ ಅನುಸರಿಸುತ್ತದೆ. JSON5 ವೈಶಿಷ್ಟ್ಯಗಳು ಪಾರ್ಸ್ ದೋಷಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತವೆ. JSON5 ಜೊತೆಗೆ ಕೆಲಸ ಮಾಡಲು, ಮೊದಲು JSON5 ಪಾರ್ಸರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರಮಾಣಿತ JSON ಗೆ ಪರಿವರ್ತಿಸಿ.
- ನನ್ನ JSON ಅನ್ನು ಸರ್ವರ್ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗಿದೆಯೇ?
- ಇಲ್ಲ. ಅಂತರ್ನಿರ್ಮಿತ JSON ಕಾರ್ಯಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪಾರ್ಸಿಂಗ್ ಮತ್ತು ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಸಂಪೂರ್ಣವಾಗಿ ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ ನಡೆಯುತ್ತದೆ.
- ದೊಡ್ಡ ಸಂಖ್ಯೆಗಳು ನಿಖರತೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತವೆಯೇ?
- JavaScript ಸಂಖ್ಯೆಗಳನ್ನು 64-ಬಿಟ್ ಫ್ಲೋಟ್ಗಳಾಗಿ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ 2^53 (ಸುಮಾರು 9 ಕ್ವಾಡ್ರಿಲಿಯನ್) ಮೇಲಿನ ಪೂರ್ಣಾಂಕಗಳು ನಿಖರತೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತವೆ. ID ಗಳು ಅಥವಾ ಇತರ ದೊಡ್ಡ ಪೂರ್ಣಾಂಕ ಮೌಲ್ಯಗಳಿಗಾಗಿ, ಅವುಗಳನ್ನು JSON ನಲ್ಲಿ ಸ್ಟ್ರಿಂಗ್ಗಳಾಗಿ ಸಂಗ್ರಹಿಸಿ.
- ನಾನು ಕೀಲಿಗಳನ್ನು ವರ್ಣಮಾಲೆಯಂತೆ ವಿಂಗಡಿಸಬಹುದೇ?
- JSON.stringify ಕೀಗಳನ್ನು ವಿಂಗಡಿಸುವುದಿಲ್ಲ. ಸ್ಟ್ರಿಂಗ್ ಮಾಡುವ ಮೊದಲು ಕೀಗಳನ್ನು ವರ್ಣಮಾಲೆಯ ಮಾಡಲು ಪ್ರತ್ಯೇಕ ವಿಂಗಡಣೆ ಹಂತವನ್ನು (ಅಥವಾ ವಿಂಗಡಣೆ ಬೆಂಬಲದೊಂದಿಗೆ ಫಾರ್ಮ್ಯಾಟರ್) ಬಳಸಿ.