Bu alət haqqında
JSON formatlaması (çox vaxt olduqca çap və ya gözəlləşdirmə adlanır) yığcam JSON-u götürür və strukturu insan oxucuları üçün görünən etmək üçün boşluq əlavə edir - sətir fasilələri, girinti, ardıcıl aralıq. Kompakt JSON ötürmə üçün düzgün formatdır: o, tel və yaddaş üzərində baytları minimuma endirir. Formatlaşdırılmış JSON yoxlama üçün düzgün formatdır: girintili iyerarxiya bir baxışda iç-içə strukturu aşkar edir, fərqləri mənalı edir və tərtibatçılara sənədi zehni olaraq təhlil etmədən xüsusi sahələri tapmağa imkan verir.
Bu formatlayıcı düzgünlüyünü təsdiqləmək üçün daxiletməni JSON kimi təhlil edir, sonra onu ardıcıl abzasla yenidən buraxır. Yanlış daxiletmə sintaksis probleminə işarə edən xəta yaradır. Mənbənin nə qədər yığcam və ya qarışıq olmasından asılı olmayaraq etibarlı daxiletmə yenidən formatlanır. Girinti defolt olaraq ən çox yayılmış JavaScript konvensiyasına uyğun gələn iki boşluqdur.
Formatlaşdırıcı həmçinin ən kiçik etibarlı JSON yaratmaq üçün bütün lazımsız boşluqları silən kiçilmə (əks əməliyyat) təklif edir. Kiçikləşdirilmiş məhsul istehsalın ötürülməsi üçün faydalıdır; formatlanmış çıxış inkişaf və sazlama üçün faydalıdır.
Niyə JSON formatı
Dərin yuvalanmış JSON-u girintisiz oxumaq əslində qeyri-mümkündür - struktur texniki olaraq mövcuddur, lakin görünməzdir. Hətta orta dərəcədə mürəkkəb JSON formatlaşdırmadan böyük fayda gətirir. Kod nəzərdən keçirənlər, API sazlayıcıları və məlumat yükünü anlamağa çalışan hər kəs əslində orada nə olduğunu görmək üçün JSON formatına ehtiyac duyur.
Formatlama da səhvləri tutur. Formatlaşdırma zamanı JSON təhlil edə bilmirsə, səhv mesajı sintaksis probleminin dəqiq mövqeyini müəyyən edir - çox vaxt çatışmayan vergül, dırnaqsız açar və ya istehsal edən sistemin qeyd etmədiyi arxada qalan vergül. Formatlayıcı mövcud olan ən sadə JSON təsdiqləyicisidir.
Texniki Detallar
Formatlaşdırıcı JSON.parse və JSON.stringify istifadə edir, hər JavaScript işləmə vaxtı göndərilən eyni cüt. Təhlil RFC 8259-a (cari JSON spesifikasiyasına) uyğundur, ciddi JSON-u qəbul edir, lakin JavaScript obyekt hərfi, şərhləri, arxadakı vergülləri və digər JSON5 genişləndirmələrini rədd edir.
JSON.stringify abzas arqumentini qəbul edir: ədəd (boşluqlar) və ya sətir (fərdi abzas simvolu, məsələn, nişan). Formatlayıcı hər iki variantı ortaya qoyur. Çıxış obyektlər üçün mənbə sırasına görə çeşidlənir (Çünki ES2015 bütün əsas mühərriklərdə mülkiyyət daxiletmə qaydasını qoruyub saxlayır).
Kənar hallar: Number.MAX_SAFE_INTEGER-dən çox olan böyük ədədlər təhlil edildikdə dəqiqliyini itirir (məlum JSON məhdudiyyəti; 2^53-dən çox olan ID-lər üçün sətir dəyərlərindən istifadə edin). Sətirlərdəki Unicode qaçışları sözün həqiqi mənasında qorunur. Arxadakı boşluq hər sətirdən çıxarılır.
Tez-tez verilən suallar
- Bu alət hansı JSON səhvlərini aşkar edir?
- Alət RFC 8259 JSON spesifikasiyasına uyğun olaraq çatışmayan vergülləri, uyğun olmayan mötərizələri/mötərizələri, etibarsız sətir qaçışını, arxadakı vergülləri, tək dırnaqlı sətirləri və digər sintaksis pozuntularını aşkarlayır.
- Çox böyük JSON fayllarını idarə edə bilərmi?
- Bəli. Formatlaşdırıcı yerli JavaScript təhlilindən istifadə edərək brauzerinizdə JSON-u emal edir, ona görə də bir neçə meqabayta qədər olan faylları səmərəli şəkildə idarə edir. Çox böyük fayllar üçün (50MB+) emal müddəti cihazınızdan asılıdır.
- Şərhlərlə JSON (JSONC) dəstəkləyirmi?
- Standart JSON şərhlərə icazə vermir. Daxil etdiyiniz şərhlər varsa, təsdiqləyici onları xəta kimi qeyd edəcək. JSONC dəstəyi üçün formatlamadan əvvəl şərhləri silin.
- Formatlama məlumat dəyərlərimi dəyişəcəkmi?
- Xeyr. Formatlaşdırma yalnız boşluq və boşluqları tənzimləyir – məlumat növləriniz, dəyərləriniz və strukturunuz tam olaraq eyni qalır.
- JSON5 funksiyaları dəstəklənir (şərhlər, arxadakı vergüllər)?
- Xeyr. Formatlayıcı RFC 8259-a ciddi şəkildə əməl edir. JSON5 xüsusiyyətləri təhlil xətalarına səbəb olur. JSON5 ilə işləmək üçün əvvəlcə JSON5 analizatorundan istifadə edərək standart JSON-a çevirin.
- JSON-um serverə yüklənib?
- Xeyr. Təhlil və formatlaşdırma daxili JSON funksiyalarından istifadə etməklə tamamilə brauzerinizdə baş verir.
- Böyük ədədlər dəqiqliyi itirəcəkmi?
- JavaScript rəqəmləri 64 bitlik üzən kimi təmsil edir, ona görə də 2^53-dən (təxminən 9 katrilyon) yuxarı olan tam ədədlər dəqiqliyini itirir. İdentifikatorlar və ya digər böyük tam dəyərlər üçün onları JSON-da sətirlər kimi saxlayın.
- Düymələri əlifba sırası ilə sıralaya bilərəmmi?
- JSON.stringify açarları çeşidləmir. Simləşdirmədən əvvəl düymələri əlifba sırasına salmaq üçün ayrıca çeşidləmə addımından (və ya çeşidləmə dəstəyi olan formatlayıcıdan) istifadə edin.