JSON சுருக்குதல் என்றால் என்ன?
JSON (JavaScript Object Notation) என்பது RFC 8259 மற்றும் ECMA-404 ஆல் வரையறுக்கப்பட்ட ஒரு இலகுரக, உரை-அடிப்படை தரவு-பரிமாற்ற வடிவம். சுருக்குதல் சரம் literal க்கு வெளியே உள்ள ஒவ்வொரு இடம், tab மற்றும் புதிய வரியை நீக்குகிறது — மதிப்புகள் byte-for-byte பாதுகாக்கப்படுகின்றன, அழகான வெள்ளை இடம் மட்டுமே நீக்கப்படுகிறது. வெளியீடு உள்ளீட்டைப் போன்ற அதே மதிப்பாக பாகுபடுத்துகிறது.
JSON சுருக்குதல் எவ்வாறு வேலை செய்கிறது?
உங்கள் உள்ளீடு உங்கள் உலாவியில் உள்ளமைக்கப்பட்ட JSON.parse மற்றும் JSON.stringify செயல்பாடுகளைப் பயன்படுத்தி முழுவதும் செயலாக்கப்படுகிறது. உயர்மட்ட படிகள்:
- உங்கள் உள்ளீடு textarea இலிருந்து verbatim படிக்கப்படுகிறது — நீங்கள் ஒட்டிய ஒவ்வொரு byte உம் உள்ளூரில் நினைவகத்தில் வைக்கப்படுகிறது.
- உலாவி அதை
JSON.parseமூலம் பாகுபடுத்துகிறது. உள்ளீடு சரியான JSON இல்லாவிட்டால், பாகுபடுத்தி ஒருSyntaxErrorஐ எறிகிறது — உங்கள் உரை பக்கத்தை விட்டு போவதில்லை. - பாகுபடுத்தல் வெற்றியானால், பாகுபடுத்தப்பட்ட மதிப்பு
JSON.stringify(value)மூலம் மீண்டும் வெளியிடப்படுகிறது — indent வாதம் இல்லாமல் — அதே மதிப்பின் குறுகிய சரியான வடிவத்தை உருவாக்குகிறது. - அசல் மற்றும் சுருக்கப்பட்ட உரை இரண்டின் byte நீளமும்
new TextEncoder().encode(...).byteLengthமூலம் கணக்கிடப்படுகிறது — ஒரு HTTP சேவையகம் wire இல் காணும் அதே UTF-8 byte எண்ணிக்கை. - வெளியீடு readonly textarea வில் எழுதப்படுகிறது, metric strip ஒரு சதவீத சேமிப்புடன் byte deltas ஐ தெரிவிக்கிறது, மற்றும் Download பொத்தான் முடிவை ship செய்யக்கூடிய
.min.jsonகோப்பாக தொகுக்கிறது.
இந்த கருவியுடன் JSON ஐ ஏன் சுருக்க வேண்டும்?
- தனியுரிமை: ஒவ்வொரு பாகுபடுத்தல், சுருக்குதல் மற்றும் metric பாஸும் உங்கள் உலாவியில் நடைபெறுகிறது. JSON எங்கள் சேவையகங்களுக்கு போவதில்லை — பதிவேற்றம் இல்லை, telemetry இல்லை, கணக்கு இல்லை.
- உண்மையான byte எண்கள்: அசல் அளவு, சுருக்கப்பட்ட அளவு மற்றும் சேமிப்பு TextEncoder மூலம் கணக்கிடப்படுகின்றன, எனவே ஒரு CDN அல்லது API gateway உங்களுக்கு வசூலிக்கும் உண்மையான UTF-8 byte deltas ஐ காண்கிறீர்கள்.
- பூஜ்ய தரவு இழப்பு: சுருக்குதல் முற்றிலும் அழகான மாற்றம் — ஒவ்வொரு மதிப்பும் அதே JSON மரமாக பாகுபடுத்துகிறது, எனவே production payloads, manifests மற்றும் உட்பொதிக்கப்பட்ட fixtures க்கு பாதுகாப்பானது.
- வேகமானது: தூய
JSON.parse+JSON.stringifyவழக்கமான clipboard-sized payloads ஐ உடனடியாக கையாளுகிறது, ஏற்ற வெளி நூலகங்கள் இல்லாமல்.
JSON சுருக்குதலின் பொதுவான பயன்பாடுகள் என்ன?
JSON இலிருந்து அற்பமற்ற வெள்ளை இடத்தை நீக்குவது வலை மேம்பாடு, தரவு பொறியியல் மற்றும் உட்பொதிக்கப்பட்ட அமைப்புகளில் தோன்றுகிறது:
- API payload குறைப்பு: ஒரு metered API gateway, ஒரு paid egress link, அல்லது ஒரு satellite link ஐ கடக்கும் முன்பு request மற்றும் response bodies ஐ சுருக்குவது.
- HTML இல் உட்பொதிக்கல்: rendered பக்கத்தில் pretty-printer வெள்ளை இடத்தை கசிவின்றி ஒரு
data-*attribute அல்லது ஒரு<script type="application/json">tag இல் JSON blob ஐ திணிப்பது. - சிறிய localStorage: localStorage / IndexedDB quota பயன்பாட்டை குறைக்க pretty-printed JSON க்கு பதிலாக minified JSON எழுதுவது, இது கடுமையான per-origin சேமிப்பு வரம்புகள் கொண்ட mobile உலாவிகளில் மிகவும் மதிப்புமிக்கது.
JSON சுருக்குதல் எடுத்துக்காட்டு எப்படி இருக்கும்?
1.2 KB pretty-printed configuration கோப்பை (இரண்டு-இடம் indents உடன் சுமார் 1,225 bytes) ஒட்டி Minify அழுத்துவது பொதுவாக அதை 0.4 KB க்கும் குறைவாக சுருக்குகிறது — 66% சேமிப்பு — ஒவ்வொரு விசையும் மதிப்பும் சரியாக பாதுகாக்கப்படுகின்றன. பதிவிறக்கக்கூடிய output.min.json கோப்பு ஒரு HTTP சேவையகம் Content-Type: application/json உடன் வெளியிடும் அதே byte ஆகும்.
இது என் உலாவியில் இயங்குகிறதா?
ஆம். சுருக்கு pipeline தூய JSON.parse + JSON.stringify ஆக உலாவி tab க்குள் இயங்குகிறது. எதுவும் பதிவேற்றப்படுவதில்லை, எந்த service worker உம் உங்கள் உள்ளீட்டை proxy செய்வதில்லை, மற்றும் பக்கம் சுருக்கு படிக்கே பூஜ்ய network கோரிக்கைகளை செய்கிறது. வெளிச்செல்லும் ஒரே traffic நிலையான page-load assets (CSS, fonts, analytics) — உங்கள் JSON ஒருபோதும் Ultim8Soft ஐ அடைவதில்லை.
JSON ஐ ஏன் சுருக்க வேண்டும்?
Minified JSON pretty-printed மூலத்தைப் போன்ற அதே மதிப்பாக பாகுபடுத்துகிறது ஆனால் wire இலும் storage இலும் சிறியதாக இருக்கும். சிறிய payloads குறைந்த CDN egress bills, வேகமான mobile downloads, service workers க்குள் குறைந்த நினைவக அழுத்தம், மற்றும் JWT payloads, உட்பொதிக்கப்பட்ட HTML data-* attributes மற்றும் localStorage quotas போன்ற fixed-size envelopes க்குள் இறுக்கமான பொருத்தங்களை அர்த்தமாக்குகின்றன. அதிக அளவு APIs க்கு byte சேமிப்பு கூட்டி — 1 GB/day endpoint இல் 30% குறைப்பு மாதத்திற்கு சுமார் 9 GB சேமிக்கிறது.
சுருக்குதல் தரவை இழக்குமா?
இல்லை. JSON சுருக்குதல் சரம் literals க்கு வெளியே இருக்கும் வெள்ளை இடத்தை மட்டுமே நீக்குகிறது — இடங்கள், tab கள் மற்றும் புதிய வரிகள் spec ஏற்கனவே அற்பமற்றதாக வகைப்படுத்துகிறது. ஒவ்வொரு விசை, மதிப்பு, எண், escape sequence மற்றும் சரம் எழுத்தும் byte-for-byte பாதுகாக்கப்படுகிறது. வெளியீடு உள்ளீட்டிற்கு deepEqual ஆன மதிப்பாக பாகுபடுத்துகிறது. அழகான உள்தள்ளல் மட்டுமே மறைகிறது.
formatter மற்றும் minifier க்கு என்ன வித்தியாசம்?
தோழர் JSON Formatter மறு திசையில் செல்கிறது: அது மனிதர்கள் nested structures படிக்க வெள்ளை இடத்தை விரிவாக்குகிறது. Minifier அந்த வெள்ளை இடத்தை transport மற்றும் storage க்காக மீண்டும் நீக்குகிறது. இரண்டு கருவிகளும் நேர்மாறுகள் — Formatter → Minifier மூலம் JSON ஆவணத்தை round-trip செய்வது நீங்கள் minifier ஐ தொடங்கிய அதே byte-string ஐ தருகிறது, ஏனெனில் இரண்டும் பாகுபடுத்தப்பட்ட மதிப்பில் இயங்குகின்றன, அழகான markup இல் அல்ல.
இந்த JSON மினிஃபையர் உங்கள் Node.js, Deno அல்லது உலாவி runtime பயன்படுத்தும் அதே பாகுபடுத்தியைப் பயன்படுத்துகிறது மற்றும் ஒரு எளிய HTTP சேவையகம் வெளியிடும் அதே byte-identical வெளியீட்டை உருவாக்குகிறது. மேலே JSON ஐ ஒட்டவும், வெளியீட்டை நகலெடுக்கவும், அல்லது .min.json ஆக பதிவிறக்கவும்.