JSON-ро мустақим дар браузер форматбандӣ, тафтиш ва фушурда кунед
JSON, ки аз JavaScript Object Notation гирифта шудааст, забони умумии вебсайти муосир аст. Тақрибан ҳар як REST API-е, ки шумо дархост мекунед, онро бармегардонад, аксари файлҳои конфигуратсия ба он такя мекунанд ва қисми зиёди маълумоте, ки байни хидматҳо ва интерфейсҳо ҳаракат мекунад, ҳамчун JSON сериализатсия мешавад. Он бо сабаби хубе маъмул аст: формат содда, аз забон новобаста аст ва бо объектҳо, массивҳо, сатрҳо ва рақамҳое, ки барномасозон аллакай дар бораи онҳо фикр мекунанд, мутобиқ мешавад. Аммо ин ҳамон фушурдагӣ як нуқтаи манфӣ дорад. Ҳамин ки сервер ба шумо ҷавоби якхаттаеро медиҳад, ки садҳо калиди дар дохили ҳам ҷойгирбударо дар бар мегирад, сохторе, ки JSON-ро ҷолиб мекард, дар девори аломатҳо гум мешавад.
Форматгари JSON-и speedor.net барои баргардонидани ин сохтор офарида шудааст. Маълумоти худро гузоред ва он JSON-ро дарҳол зебо, тафтиш ва фушурда мекунад — комилан дар дохили таби браузери шумо. Ҳеҷ чиз ба сервер бор карда намешавад, ки ин вақте муҳим аст, ки маълумоте, ки шумо тафтиш мекунед, ҷавоби API бо токенҳо, сабтҳои мизоҷон ё идентификаторҳои дохилӣ дошта бошад.

Чаро гузоштани фосила JSON-ро боз хонанда мекунад
Форматбандӣ, ки инчунин зебокунӣ ё pretty-printing номида мешавад, JSON-и фушурда ё минифаршударо мегирад ва ба он шикастани сатр ва фосилагузории пайваста илова мекунад. Маълумот айнан ҳамон аст; танҳо фосилаҳои холӣ тағйир меёбанд. Аммо ҳамин фосилаҳои холӣ ба чашми шумо имкон медиҳанд, ки амиқии дарунлона(nesting)-ро пайгирӣ кунед, ҷое, ки як объект тамом мешавад ва навбатӣ оғоз меёбад, бинед ва массиви се унсурро аз массиви сесад унсур фарқ кунед. Вақте ки шумо соати ду шаб як интегратсияро тафтиш мекунед, фарқ байни дарахти хонданбоб ва як сатри бешикаст фарқи ёфтани хато ва аз даст додани он аст.
Форматгари хуб инчунин тартиби калидҳо ва арзишҳои дурустро бетағйир нигоҳ медорад, бинобар ин он чи ки шумо мехонед, воқеан ҳамон чизест, ки API фиристодааст. Шумо ба намунаи аз нав сохташуда нигоҳ намекунед; шумо ба ҳамон байтҳо нигоҳ мекунед, танҳо тавре ҷойгир шудаанд, ки инсон онҳоро худ ба осонии мошин таҳлил карда тавонад.
Тафтиш ва хатогиҳое, ки ҳамаро мехӯранд
Зебокунӣ танҳо нисфи кор аст. Пеш аз он ки JSON умуман форматбандӣ шавад, он бояд дуруст бошад ва қоидаҳои қатъии формат хатогиҳои бештаре нисбат ба интизории мардум мегиранд. Тафтишгар вуруди шуморо таҳлил мекунад ва дақиқ мегӯяд, ки дар куҷо мешиканад — одатан бо ишора ба сатр ва ҷой, то шумо маҷбур набошед бесаранҷом ҷустуҷӯ кунед. Якчанд хатогии зерин қисми зиёди JSON-и вайроншударо ташкил медиҳанд:
- Вергули изофӣ дар охир. JSON вергулро баъд аз унсури охирини объект ё массив манъ мекунад. JavaScript онро таҳаммул мекунад, ки маҳз барои ҳамин барномасозон онро аз одат мегузоранд.
- Нохунаки ягона. Сатрҳо ва калидҳо бояд нохунаки дукарата истифода баранд. Гирифтани литерали объект бевосита аз коди манбаъ аксар вақт нохунаки ягонаро мегузорад ва таҳлилгар онро рад мекунад.
- Калидҳои беноховак. Ҳар калид бояд сатри дар нохунак гузошташуда бошад. Калидҳои холӣ, ки дар объекти JavaScript хуб кор мекунанд, JSON-и нодуруст ҳисобида мешаванд.
- Қавси гумшуда ё номувофиқ.
{ё[-и накушода, ё пӯшидаи иловагӣ, тамоми ҳуҷҷатро вайрон мекунад. Форматгар нишон медиҳад, ки мувозинат дар куҷо мешиканад. - Шарҳҳо ва арзишҳои муайяннашуда. JSON шарҳ надорад ва
undefinedнадорад; танҳоnull, буливҳо, рақамҳо, сатрҳо, массивҳо ва объектҳо иҷозат дода мешаванд.
Пеш аз ҳама маълумоти шубҳаноки худро аз тафтишгар гузаронед ва ин мушкилот дар якчанд сония, на пас аз силсилаи печидаи истгоҳҳои нокоми деплой, зоҳир мешаванд.

Минификатсия барои кам кардани ҳаҷм
Амали баръакс ҳам ба ҳамин андоза муфид аст. Минификатсия ҳар байти фосилаи холии ихтиёриро мебарорад ва JSON-и шуморо ба фушурдатарин шакли якхатта бармегардонад. Ин маҳз он чизест, ки шумо мехоҳед вақте ки маълумот ба сими интиқол ё ба арзиши конфигуратсия равона мешавад, зеро ҳаҷми хурдтар маънои камтар паҳнои интернет ва интиқоли зудтарро дорад. Гардиши маъмулан кор ин аст: вақте омӯхта истодаед, ҷавобро зебо кунед, чизи хатогиро ислоҳ кунед, сипас натиҷаро пеш аз ба анҷом расонидан ё гузоштан ба тағйирёбандаи муҳит минифика кунед. Як абзор ҳарду учи ин давраро идора мекунад.
Коркарди маҳаллӣ маълумоти ҳассосро махфӣ нигоҳ медорад
Азбаски ҳар қадам дар JavaScript дар дохили худи браузери шумо иҷро мешавад, JSON-е, ки шумо мегузоред, ҳеҷ гоҳ дастгоҳи шуморо тарк намекунад. Ин на танҳо як хусусияти рекламавист, балки кафолати амалист. Шумо метавонед ҷавоби хоми API-ро бо токенҳои bearer, содироти маълумоти корбар ё конфигуратсияи дохилии хидмат гузоред, бидуни нигаронӣ аз он ки сервери тарафи сеюм онро сабт мекунад. Табро пӯшонед ва маълумот нест мешавад. Барои ҳар кас, ки тибқи қоидаҳои коркарди маълумот кор мекунад, коркарди танҳо маҳаллӣ тамоми як категорияи хатарро бартараф мекунад.
Ҳангоме ки JSON-и шумо тоза шуд, шумо метавонед онро боз пеш баред. Дигар абзорҳои барномасозон-и моро кашф кунед, сохторро бо JSON ба YAML табдил диҳед, ё арзиши дарунсохтшударо бо Base64 рамзкушоӣ кунед. Ҳар абзор ба ҳамон принсип пайравӣ мекунад: зуд, ройгон ва комилан дар браузери шумо коркард мешавад.
Саволҳои зуд додашаванда
Оё JSON-и ман ба сервер бор мешавад?
Не. Форматгар комилан дар браузери шумо тавассути JavaScript кор мекунад. Маълумоти шумо ҳеҷ гоҳ ба ҷое фиристода намешавад, бинобар ин шумо метавонед ҷавобҳои ҳассоси API ё файлҳои конфигуратсияро бехавф гузоред.
Фарқи байни форматбандӣ ва минификатсия чист?
Форматбандӣ фосилагузорӣ ва шикастани сатр илова мекунад, то JSON хонданбоб шавад. Минификатсия тамоми фосилаи холии ихтиёриро мебарорад, то ҷавоб то ҳадди имкон хурд шавад. Худи маълумот дар ҳарду шакл айнан якхела аст.
Чаро JSON-и ман тафтишро намегузарад?
Сабабҳои маъмултарин вергули иловагии охирин, нохунаки ягона ба ҷои дукарата, калидҳои беноховак, шарҳҳо ва қавсҳои гумшуда ё номувофиқанд. Тафтишгар ба сатре, ки мушкилот дар он рух медиҳад, ишора мекунад.
Оё ман метавонам дар JSON нохунаки ягона истифода барам?
Не. Стандарти JSON нохунаки дукараро барои тамоми сатрҳо ва калидҳо талаб мекунад. Нохунаки ягона дар JavaScript дуруст аст, аммо дар JSON не, ки ин сарчашмаи маъмулии хатогиҳост.
Оё абзор ҳангоми форматбандӣ маълумоти маро тағйир медиҳад?
Не. Форматбандӣ танҳо фосилаи холиро илова ё хориҷ мекунад. Калидҳо, арзишҳо ва тартиби онҳо айнан ҳамон тавре мемонанд, ки буданд, бинобар ин он чи шумо мехонед, ҳамон чизест, ки API воқеан фиристодааст.
Оё маҳдудияти ҳаҷм вуҷуд дорад?
Азбаски коркард маҳаллӣ сурат мегирад, маҳдудияти амалӣ на аз ҳудуди сервер, балки аз дастгоҳ ва браузери шумо вобаста аст. Ҷавобҳои маъмулии API ва файлҳои конфигуратсия фавран форматбандӣ мешаванд.
