დაფორმატეთ, გადაამოწმეთ და შეამცირეთ JSON პირდაპირ ბრაუზერში
JSON, ანუ JavaScript Object Notation, თანამედროვე ვების საერთო ენაა. თითქმის ყოველი REST API, რომელსაც იძახებთ, სწორედ მას აბრუნებს, კონფიგურაციის ფაილების უმეტესობა მასზეა დაფუძნებული, და მონაცემების დიდი ნაწილი, რომელიც სერვისებსა და ფრონტენდებს შორის მოძრაობს, JSON ფორმატშია სერიალიზებული. ის პოპულარულია საფუძვლიანი მიზეზით: ფორმატი მარტივი და ენისგან დამოუკიდებელია და ბუნებრივად ერგება ობიექტებს, მასივებს, სტრიქონებსა და რიცხვებს, რომლებშიც პროგრამისტები უკვე ფიქრობენ. მაგრამ სწორედ ეს კომპაქტურობა ხდება ხანდახან პრობლემად. როგორც კი სერვერი დაგიბრუნებთ ერთსტრიქონიან პასუხს, რომელშიც ასობით ჩადგმული გასაღებია, JSON-ის მიმზიდველი სტრუქტურა სიმბოლოების კედელში იკარგება.
speedor.net-ის JSON Formatter სწორედ ამ სტრუქტურის დასაბრუნებლად არსებობს. ჩასვით მონაცემები და ის მყისვე დაალაგებს, გადაამოწმებს და შეამცირებს JSON-ს — მთლიანად თქვენი ბრაუზერის ჩანართში. არაფერი იტვირთება სერვერზე, რაც დიდი მნიშვნელობისაა მაშინ, როცა ის, რასაც ათვალიერებთ, არის API-ს პასუხი, რომელშიც ტოკენები, მომხმარებელთა ჩანაწერები ან შიდა იდენტიფიკატორებია.

რატომ ხდის შეწყობა JSON-ს კვლავ წაკითხვადს
დაფორმატება, რომელსაც ასევე „გალამაზებას" ან „pretty-print"-ს უწოდებენ, კომპაქტურ ან შემცირებულ JSON-ს იღებს და უმატებს ხაზების გადატანასა და თანმიმდევრულ შეწყობას. ინფორმაცია იგივეა, იცვლება მხოლოდ ცარიელი ადგილები. მაგრამ სწორედ ეს ცარიელი ადგილებია ის, რაც თვალს საშუალებას აძლევს, გაჰყვეს ჩადგმულობის სიღრმეს, დაინახოს, სად მთავრდება ერთი ობიექტი და იწყება მომდევნო, და გაარჩიოს სამწევრიანი მასივი სამასწევრიანისგან. როცა ღამის ორ საათზე ინტეგრაციის ხარვეზს ეძებთ, სწორედ წაკითხვად ხესა და უწყვეტ სტრიქონს შორის განსხვავებაშია ხარვეზის აღმოჩენა თუ გამოტოვება.
კარგი ფორმატერი ასევე ინარჩუნებს გასაღებების თანმიმდევრობასა და ზუსტ მნიშვნელობებს ხელუხლებლად, ასე რომ, რასაც ხედავთ, ის ნამდვილად არის, რაც API-მ გამოგზავნა. თქვენ არ უყურებთ ხელახლა აწყობილ მიახლოებას — თქვენ ხედავთ იმავე ბაიტებს, უბრალოდ ისე დალაგებულს, რომ ადამიანმაც ისევე მარტივად წაიკითხოს, როგორც მანქანამ.
გადამოწმება და შეცდომები, რომლებზეც ყველა ბორტავს
გალამაზება საქმის მხოლოდ ნახევარია. JSON-ის დაფორმატებამდე ის ვალიდური უნდა იყოს, ხოლო ფორმატის მკაცრი წესები გაცილებით მეტ შეცდომას იჭერს, ვიდრე ხალხი მოელის. ვალიდატორი აანალიზებს თქვენს შეყვანილ ტექსტს და ზუსტად გეუბნებათ, სად ირღვევა სტრუქტურა — ჩვეულებრივ, ხაზისა და პოზიციის მითითებით, რომ ბრმად არ გიწევდეთ ძებნა. ქვემოთ ჩამოთვლილი რამდენიმე შეცდომა მოტეხილი JSON-ის აბსოლუტურ უმრავლესობას ხსნის:
- ბოლო მძიმეები. JSON კრძალავს მძიმეს ობიექტის ან მასივის ბოლო ელემენტის შემდეგ. JavaScript ამას ითმენს, სწორედ ამიტომ დეველოპერები ხშირად ჩვევით სვამენ მას.
- ერთმაგი ბრჭყალები. სტრიქონები და გასაღებები ორმაგი ბრჭყალებით უნდა იყოს გარშემორტყმული. ობიექტის ლიტერალის პირდაპირ კოდიდან ამოღება ხშირად ტოვებს ერთმაგ ბრჭყალებს, რასაც პარსერი უარყოფს.
- ბრჭყალების გარეშე დარჩენილი გასაღებები. ყოველი გასაღები ბრჭყალებში ჩასმულ სტრიქონად უნდა იყოს წარმოდგენილი. „შიშველი" გასაღებები, რომლებიც JavaScript ობიექტში ჩვეულებრივ მუშაობს, JSON-ისთვის არავალიდურია.
- დაკარგული ან შეუსაბამო ფრჩხილები. ჩაუკეტავი
{ან[, ან შემთხვევით მოხვედრილი დამხურავი ფრჩხილი, მთელ დოკუმენტს არღვევს. ფორმატერი ხაზს უსვამს, სად ირღვევა ბალანსი. - კომენტარები და undefined მნიშვნელობები. JSON-ს არ აქვს კომენტარები და არც
undefined; დაშვებულია მხოლოდnull, ლოგიკური მნიშვნელობები, რიცხვები, სტრიქონები, მასივები და ობიექტები.
ეჭვის მომგვრელი მონაცემები ჯერ ვალიდატორში გაატარეთ — ეს პრობლემები წამებში გამოჩნდება, და არა დაბნეული, ჩავარდნილი დეპლოების ჯაჭვის შემდეგ.

შემცირება მოცულობის დასაპატარავებლად
საპირისპირო ოპერაცია ისევე სასარგებლოა. შემცირება (მინიფიკაცია) აშორებს ყოველ არასავალდებულო ცარიელ სივრცეს და თქვენს JSON-ს ისევ ყველაზე მჭიდრო, ერთსტრიქონიან სახეს უბრუნებს. სწორედ ეს გჭირდებათ მაშინ, როცა მონაცემები ქსელში ან კონფიგურაციის მნიშვნელობაში მიემართება, რადგან უფრო მცირე მოცულობა ნაკლებ გამტარუნარიანობასა და უფრო სწრაფ გადაცემას ნიშნავს. ხშირი სამუშაო პროცესია: პასუხის გალამაზება შესწავლისთვის, ხარვეზის გასწორება და შედეგის შემცირება, სანამ ის კომიტში ან გარემოს ცვლადში ჩაისმება. ერთი ხელსაწყო ორივე ბოლოს ფარავს.
ლოკალური დამუშავება მგრძნობიარე მონაცემებს კონფიდენციალურად ინახავს
რადგან ყოველი ეტაპი JavaScript-ში, თქვენს ბრაუზერშივე მუშავდება, ჩასმული JSON არასდროს ტოვებს თქვენს მოწყობილობას. ეს არ არის მარკეტინგული სასიამოვნო დეტალი — ეს პრაქტიკული გარანტიაა. შეგიძლიათ ჩასვათ დიდი API პასუხი, სავსე bearer-ტოკენებით, მომხმარებელთა მონაცემების ექსპორტი ან შიდა სერვისის კონფიგურაცია — შეშფოთების გარეშე, რომ მესამე მხარის სერვერი მას ლოგავს. ჩანართის დახურვისთანავე მონაცემები ქრება. ვისაც მონაცემთა დამუშავების წესებთან უწევს მუშაობა, ლოკალურ-მხოლოდ დამუშავება რისკის მთელ კატეგორიას გამორიცხავს.
როცა თქვენი JSON სუფთაა, შეგიძლიათ შემდეგ ნაბიჯს გადახვიდეთ. გაეცანით ჩვენს დანარჩენ დეველოპერულ ხელსაწყოებს, გადაიყვანეთ სტრუქტურა JSON-დან YAML-ში, ან გაშიფრეთ ჩადგმული მნიშვნელობა Base64-ის საშუალებით. ყოველი ხელსაწყო იმავე პრინციპს მისდევს: სწრაფი, უფასო და მთლიანად თქვენს ბრაუზერში დამუშავებული.
ხშირად დასმული კითხვები
იტვირთება ჩემი JSON სერვერზე?
არა. ფორმატერი მთლიანად თქვენს ბრაუზერში მუშაობს, JavaScript-ის გამოყენებით. თქვენი მონაცემები არსად იგზავნება, ასე რომ, უსაფრთხოდ შეგიძლიათ ჩასვათ მგრძნობიარე API პასუხები ან კონფიგურაციის ფაილები.
რა განსხვავებაა დაფორმატებასა და შემცირებას შორის?
დაფორმატება უმატებს შეწყობასა და ხაზების გადატანას, რომ JSON წაკითხვადი გახდეს. შემცირება აშორებს ყველა არასავალდებულო ცარიელ სივრცეს, რომ მოცულობა რაც შეიძლება მცირე იყოს. თავად მონაცემები ორივე ფორმაში იდენტურია.
რატომ ვერ ხერხდება ჩემი JSON-ის გადამოწმება?
ყველაზე ხშირი მიზეზებია ბოლო მძიმეები, ორმაგის ნაცვლად ერთმაგი ბრჭყალები, ბრჭყალების გარეშე დარჩენილი გასაღებები, კომენტარები და დაკარგული ან შეუსაბამო ფრჩხილები. ვალიდატორი უჩვენებს ხაზს, სადაც პრობლემა ჩნდება.
შემიძლია JSON-ში ერთმაგი ბრჭყალების გამოყენება?
არა. JSON-ის სპეციფიკაცია მოითხოვს ორმაგ ბრჭყალებს ყველა სტრიქონისა და გასაღებისთვის. ერთმაგი ბრჭყალები JavaScript-ში ვალიდურია, მაგრამ JSON-ში — არა, რაც ხშირი შეცდომების წყაროა.
ცვლის ხელსაწყო ჩემს მონაცემებს დაფორმატებისას?
არა. დაფორმატება მხოლოდ ცარიელ სივრცეს უმატებს ან აშორებს. გასაღებები, მნიშვნელობები და მათი თანმიმდევრობა ზუსტად ისეთივე რჩება, როგორიც იყო, ასე რომ, რასაც ხედავთ, ის, რაც API-მ ნამდვილად გამოგზავნა.
არსებობს მოცულობის შეზღუდვა?
რადგან დამუშავება ლოკალურად ხდება, პრაქტიკული ლიმიტი დამოკიდებულია თქვენს მოწყობილობასა და ბრაუზერზე და არა სერვერის შეზღუდვაზე. ტიპური API პასუხები და კონფიგურაციის ფაილები მყისვე ფორმატდება.
