JSON ஃபார்மேட்டர் & வேலிடேட்டர்
JSON-ஐ ஒட்டி, அதை அழகாக வடிவமைக்கலாம், மினிஃபை செய்யலாம் அல்லது அதன் கீகளை வரிசைப்படுத்தலாம். JSON சரியாகப் பார்ஸ் ஆகவில்லை என்றால், பார்சர் நின்றுபோன வரி, நெடுவரிசையை ஃபார்மேட்டர் காட்டும்; பிழை உள்ள இடத்தின் கீழ் ஒரு குறியும் காட்டும். இதனால் 3,000 வரி கொண்ட ஒரு ரெஸ்பான்ஸில் விடுபட்ட ஒரு காற்புள்ளியைக் கூட சில வினாடிகளில் கண்டுபிடிக்கலாம்.
0 எழுத்துகள் · 0 சொற்கள் · 0 வரிகள்
0 எழுத்துகள் · 0 சொற்கள் · 0 வரிகள்
முழுவதும் இந்த உலாவி தாவலிலேயே இயங்குகிறது. உங்கள் உரை பதிவேற்றப்படவோ சேமிக்கப்படவோ மாட்டாது.
JSON மதிப்பு வகைகள்
RFC 8259 இந்த மதிப்புகளை மட்டுமே அனுமதிக்கிறது. Object, array உள்ளடக்கலாம்; மற்றவை இறுதி மதிப்புகள்.
| வகை | எடுத்துக்காட்டு | விதி |
|---|---|---|
| Object | {"id": 7, "tags": ["a"]} | விசைகள் இரட்டை மேற்கோள் string ஆக இருக்க வேண்டும்; உறுப்புகள் காற்புள்ளியால் பிரிக்கப்படும், கடைசியில் காற்புள்ளி கூடாது. |
| Array | [1, "two", null] | எந்த மதிப்புகளின் வரிசைப் பட்டியல்; கலந்த வகைகள் அனுமதி. |
| String | "caf\u00e9 \"quoted\"" | இரட்டை மேற்கோள் மட்டும்; கட்டுப்பாட்டு எழுத்துகள் escape செய்யப்பட வேண்டும்; \u escape நான்கு hex இலக்கங்கள் கொண்டது. |
| எண் | -12.5e3 | தசமம் மட்டும்: விருப்ப கழித்தல், முன்னணி பூஜ்யம் கூடாது, விருப்ப பின்னம் மற்றும் அடுக்கு. NaN, Infinity கூடாது. |
| true, false, null (லிட்டரல்கள்) | true | சிறிய எழுத்து, மேற்கோள் இல்லாமல். |
பார்சர் நிராகரிப்பவை
கீழுள்ள ஒவ்வொரு உள்ளீடும் இந்தப் பக்கம் உருவாக்கப்பட்டபோது ஃபார்மேட்டர் பயன்படுத்தும் அதே JSON.parse-க்கு அனுப்பப்பட்டது.
| உள்ளீடு | சிக்கல் | JSON.parse |
|---|---|---|
{"a": 1,} | கடைசி காற்புள்ளி | நிராகரிக்கப்பட்டது |
{'a': 1} | ஒற்றை மேற்கோள் strings | நிராகரிக்கப்பட்டது |
{"a": 1 /* note */} | கருத்துரைகள் | நிராகரிக்கப்பட்டது |
{a: 1} | மேற்கோள் இல்லாத விசை | நிராகரிக்கப்பட்டது |
{"n": NaN} | NaN JSON எண் அல்ல | நிராகரிக்கப்பட்டது |
{"n": 012} | முன்னணி பூஜ்யம் | நிராகரிக்கப்பட்டது |
{"n": 0x1F} | ஹெக்சாடெசிமல் எண் | நிராகரிக்கப்பட்டது |
JSON strings-ல் escape-கள்
| எழுத்து | JSON-ல் எழுதும் முறை |
|---|---|
| இரட்டை மேற்கோள் | "\"" |
| பின்சாய்வுக்கோடு | "\\" |
| புதிய வரி | "\n" |
| Tab | "\t" |
| Carriage return | "\r" |
| கட்டுப்பாட்டு எழுத்து U+0001 | "\u0001" |
| முன்சாய்வுக்கோடு (escape விருப்பம்) | "/" |
| ASCII அல்லாத எழுத்து (escape தேவையில்லை) | "é" |
சரியான JSON ஆவணம் பின்பற்ற வேண்டிய விதிகள்
JSON, RFC 8259 (சாராம்சத்தில் ECMA-404-க்கு இணையானது) மூலம் வரையறுக்கப்படுகிறது. ஒரு ஆவணம் என்பது ஒரே மதிப்பு: ஆப்ஜெக்ட், அணி, சரம், எண், true, false அல்லது null. ஆப்ஜெக்ட் விசைகள் எப்போதும் இரட்டை மேற்கோளில் உள்ள சரங்களாக இருக்கும். சரங்களில் இரட்டை மேற்கோள் மட்டுமே பயன்படுத்த வேண்டும்; மேற்கோள், பின்சாய்வு கோடு மற்றும் U+0020-க்கு கீழுள்ள ஒவ்வொரு கட்டுப்பாட்டு எழுத்தும் escape செய்யப்பட வேண்டும். எனவே சரத்துக்குள் உள்ள டேப், புதிய வரிகள் \t, \n என எழுதப்படும். அமைப்புகளுக்கு இடையே பரிமாறப்படும் JSON-க்கு RFC 8259 UTF-8-ஐயும் கட்டாயமாக்குகிறது.
எண்கள் தசம முறையில் இருக்க வேண்டும்: முன்னால் பூஜ்ஜியம், ஹெக்சாடெசிமல், NaN அல்லது Infinity, முன்னால் கூட்டல் குறி ஆகியவை கூடாது. இந்த வடிவத்தில் குறிப்புரைகளும் கடைசி காற்புள்ளிகளும் இல்லை. JavaScript ஆப்ஜெக்ட் literal-கள், JSON5 மற்றும் பல கட்டமைப்புக் கோப்புகள் இவை இரண்டையும் அனுமதிப்பதால், நடைமுறையில் பெரும்பாலான பிழைகள் இந்த இரு விதிகளால் வருகின்றன. கீழுள்ள குறிப்பு அட்டவணை, ஃபார்மேட்டர் பயன்படுத்தும் அதே பார்சருக்கு ஒவ்வொரு பொதுவான தவறையும் கொடுத்து உருவாக்கப்பட்டது.
அழகாக வடிவமைத்தல், மினிஃபை, வரிசைப்படுத்தல்
Pretty-print செய்தால் வரி முறிவுகளும் உள்தள்ளலும் சேர்ந்து கட்டமைப்பு படிக்க எளிதாகும்; JavaScript திட்டங்களில் இரண்டு இடைவெளிகள் மிகவும் பொதுவானவை, Python-இன் json.dumps(indent=4) உடன் நான்கு இடைவெளிகள் வழக்கம், டேப் என்றால் ஒவ்வொருவரும் தங்கள் அகலத்தைத் தேர்வு செய்யலாம். Minify செய்தால் தேவையற்ற இடைவெளிகள் அனைத்தும் நீங்கி, API payload சிறியதாகும்; லாக் அல்லது சூழல் மாறிகளுக்கு ஆவணம் ஒரே வரியில் அடங்கும்.
விசைகளை வரிசைப்படுத்து என்பது ஒவ்வொரு ஆப்ஜெக்டின் உறுப்புகளையும் அகரவரிசையில், உள்ளமைந்தவை உட்பட வரிசைப்படுத்தும். JSON ஆப்ஜெக்ட்கள் வரையறைப்படி வரிசையற்றவை என்பதால் பொருள் மாறாது; ஆனால் வெவ்வேறு அமைப்புகளின் இரு ஆவணங்களை ஒப்பிடுவது மிக எளிதாகும். பார்சிங்கின்போது எண்கள் JavaScript doubles ஆக மாறும் என்பதை நினைவில் கொள்ளுங்கள்: 2^53-க்கு (9,007,199,254,740,992) மேலான முழு எண்கள், சில தரவுத்தள IDகள் போன்றவை, மறுவடிவமைக்கும்போது துல்லியம் இழக்கும்; அவற்றைச் சரங்களாகவே வைத்திருங்கள்.
JSON-இலிருந்து பிற வடிவங்களுக்கு
வடிவமைக்கப்பட்ட ஆவணம் படிக்க எளிது, ஆனால் சில நேரம் வேறு வடிவம் தேவைப்படும். ஆப்ஜெக்ட்களின் அணியை JSON to CSV மூலம் ஸ்ப்ரெட்ஷீட் ஆக்கலாம்; தரவு வடிவ மாற்றி முழு கோப்புகளையும் JSON, XML, YAML, CSV இடையே மாற்றும்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
- கமெண்ட்கள் உள்ள என் JSON-ஐ ஃபார்மேட்டர் ஏன் ஏற்கவில்லை?
- நிலையான JSON-இல் குறிப்புரை தொடரியல் இல்லை; RFC 8259 வேண்டுமென்றே அதை விலக்கியுள்ளது. குறிப்புரைகளை நீக்குங்கள், அல்லது அதைப் படிக்கும் கருவி ஆதரித்தால் கோப்பை JSONC அல்லது JSON5 ஆக வைத்திருங்கள்.
- JSON பிழையில் "Unexpected token" என்றால் என்ன?
- அந்த இடத்தில் வரக்கூடாத எழுத்தை பார்சர் கண்டது, எடுத்துக்காட்டாக ஒற்றை மேற்கோள், } க்கு முன் கடைசி காற்புள்ளி அல்லது மேற்கோள் இல்லாத விசை. காட்டப்படும் வரி, நெடுவரிசை அந்த எழுத்தைக் குறிக்கும்.
- கீகளை வரிசைப்படுத்தினால் என் தரவு மாறுமா?
- இல்லை. JSON-இல் ஆப்ஜெக்ட் உறுப்புகளின் வரிசைக்குப் பொருள் இல்லை, எனவே வரிசைப்படுத்திய ஆவணம் சமமானதே. அணியின் வரிசை முக்கியமானது; அது ஒருபோதும் மாற்றப்படாது.
- வடிவமைத்த பிறகு ஒரு நீண்ட எண் ஏன் மாறியது?
- JavaScript எண்களை 64-பிட் floats ஆகச் சேமிக்கிறது; அவை 2^53 வரை மட்டுமே முழு எண்களைத் துல்லியமாகக் குறிக்கும். பெரிய IDகள் பார்ஸ் செய்யும்போது வட்டமாக்கப்படும்; ஒவ்வொரு இலக்கமும் தேவையெனில் அவற்றைச் சரங்களாக அனுப்புங்கள்.
- ஒட்டுவதற்குப் பதிலாக ஒரு JSON கோப்பை நேரடியாக வடிவமைக்க முடியுமா?
- கோப்பை ஏதேனும் டெக்ஸ்ட் எடிட்டரில் திறந்து, அனைத்தையும் தேர்ந்தெடுத்து இங்கே ஒட்டுங்கள். பத்துக்கணக்கான மெகாபைட் அளவிலான மிகப் பெரிய கோப்புகளை textarea காட்டும்போது டேப் மெதுவாகலாம்.