Μορφοποιήστε, επικυρώστε και συμπτύξτε JSON απευθείας στο πρόγραμμα περιήγησής σας
Το JSON, συντομογραφία του JavaScript Object Notation, είναι η κοινή γλώσσα του σύγχρονου διαδικτύου. Σχεδόν κάθε REST API που καλείτε το επιστρέφει, τα περισσότερα αρχεία διαμόρφωσης βασίζονται σε αυτό, και ένα τεράστιο μέρος των δεδομένων που ρέουν ανάμεσα σε υπηρεσίες και front-end εφαρμογές σειριοποιείται ως JSON. Είναι δημοφιλές για καλό λόγο: η μορφή είναι απλή, ανεξάρτητη γλώσσας, και αντιστοιχίζεται καθαρά στα αντικείμενα, τους πίνακες, τα strings και τους αριθμούς με τους οποίους σκέφτονται ήδη οι προγραμματιστές. Αλλά αυτή η ίδια συμπύκνωση έχει ένα μειονέκτημα. Τη στιγμή που ένας server σας δίνει μια μονογραμμική απόκριση γεμάτη με εκατοντάδες ένθετα κλειδιά, η δομή που έκανε το JSON ελκυστικό εξαφανίζεται μέσα σε έναν τοίχο χαρακτήρων.
Ο JSON Formatter του speedor.net υπάρχει για να επαναφέρει αυτή τη δομή. Επικολλήστε τα δεδομένα σας, και εκείνος τα μορφοποιεί όμορφα, τα επικυρώνει και τα συμπτύσσει επιτόπου, εξ ολοκλήρου μέσα στην καρτέλα του προγράμματος περιήγησής σας. Τίποτα δεν ανεβαίνει σε server, κάτι που έχει μεγάλη σημασία όταν το payload που εξετάζετε είναι μια απόκριση API που περιέχει tokens, εγγραφές πελατών ή εσωτερικά αναγνωριστικά.

Γιατί οι εσοχές κάνουν το JSON ξανά ευανάγνωστο
Η μορφοποίηση, που ονομάζεται και «beautifying» ή pretty-printing, παίρνει συμπτυγμένο ή ελαχιστοποιημένο JSON και προσθέτει αλλαγές γραμμής συν συνεπείς εσοχές. Οι πληροφορίες παραμένουν ταυτόσημες· αλλάζει μόνο ο λευκός χώρος. Ωστόσο αυτός ο λευκός χώρος είναι που επιτρέπει στο μάτι σας να ακολουθεί το βάθος φωλιάσματος, να εντοπίζει πού τελειώνει ένα αντικείμενο και πού αρχίζει το επόμενο, και να ξεχωρίζει έναν πίνακα τριών στοιχείων από έναν πίνακα τριακοσίων. Όταν κάνετε debugging μιας ενσωμάτωσης στις δύο τα ξημερώματα, η διαφορά ανάμεσα σε ένα ευανάγνωστο δέντρο και μια αδιάσπαστη συμβολοσειρά είναι η διαφορά ανάμεσα στο να βρείτε το σφάλμα και στο να το χάσετε.
Ένας καλός formatter διατηρεί επίσης τη σειρά των κλειδιών και τις ακριβείς τιμές ανέπαφες, ώστε αυτό που διαβάζετε να είναι πραγματικά αυτό που έστειλε το API. Δεν βλέπετε μια επαναδημιουργημένη προσέγγιση· βλέπετε τα ίδια bytes, απλώς διαταγμένα ώστε ένας άνθρωπος να μπορεί να τα αναλύσει το ίδιο εύκολα όσο και μια μηχανή.
Επικύρωση και τα σφάλματα που μπερδεύουν όλους
Το beautifying είναι μόνο η μισή δουλειά. Πριν το JSON μπορέσει καν να μορφοποιηθεί, πρέπει να είναι έγκυρο, και οι αυστηροί κανόνες της μορφής εντοπίζουν πολύ περισσότερα λάθη απ' όσα περιμένουν οι περισσότεροι. Ένας validator αναλύει την εισαγωγή σας και σας λέει ακριβώς πού σπάει, συνήθως δείχνοντας μια γραμμή και μια θέση ώστε να μη χρειάζεται να ψάχνετε στα τυφλά. Η χούφτα λαθών παρακάτω αντιπροσωπεύει τη συντριπτική πλειοψηφία του κατεστραμμένου JSON:
- Περιττά κόμματα. Το JSON απαγορεύει κόμμα μετά το τελευταίο στοιχείο ενός αντικειμένου ή πίνακα. Η JavaScript το ανέχεται, γι' αυτό ακριβώς οι προγραμματιστές το επικολλούν από συνήθεια.
- Μονά εισαγωγικά. Οι συμβολοσειρές και τα κλειδιά πρέπει να χρησιμοποιούν διπλά εισαγωγικά. Η αντιγραφή ενός literal αντικειμένου απευθείας από πηγαίο κώδικα συχνά αφήνει πίσω μονά εισαγωγικά, και ο parser το απορρίπτει.
- Κλειδιά χωρίς εισαγωγικά. Κάθε κλειδί πρέπει να είναι μια συμβολοσειρά με εισαγωγικά. Τα γυμνά κλειδιά, αυτά που λειτουργούν μια χαρά σε ένα αντικείμενο JavaScript, είναι μη έγκυρο JSON.
- Αγκύλες που λείπουν ή δεν ταιριάζουν. Μια ανοιχτή
{ή[, ή μια περιττή που κλείνει, εκτροχιάζει ολόκληρο το έγγραφο. Ο formatter επισημαίνει πού σπάει η ισορροπία. - Σχόλια και τιμές undefined. Το JSON δεν έχει σχόλια και δεν έχει
undefined· επιτρέπονται μόνοnull, boolean τιμές, αριθμοί, συμβολοσειρές, πίνακες και αντικείμενα.
Περάστε ένα ύποπτο payload πρώτα από τον validator και αυτά τα προβλήματα αναδύονται σε δευτερόλεπτα αντί να εμφανιστούν μετά από μια μπερδεμένη αλυσίδα αποτυχημένων deploy.

Ελαχιστοποίηση για συρρίκνωση των payloads
Η αντίθετη λειτουργία είναι εξίσου χρήσιμη. Η ελαχιστοποίηση αφαιρεί κάθε byte προαιρετικού λευκού χώρου, συμπτύσσοντας το JSON σας ξανά στην πιο σφιχτή μονογραμμική μορφή. Αυτό ακριβώς θέλετε όταν τα δεδομένα κατευθύνονται προς τη γραμμή ή σε μια τιμή διαμόρφωσης, γιατί μικρότερα payloads σημαίνουν λιγότερο εύρος ζώνης και ταχύτερες μεταφορές. Μια συνηθισμένη ροή εργασίας είναι να κάνετε beautify μια απόκριση όσο τη μελετάτε, να διορθώσετε ό,τι είναι λάθος, και μετά να ελαχιστοποιήσετε το αποτέλεσμα πριν το κάνετε commit ή το επικολλήσετε σε μια μεταβλητή περιβάλλοντος. Ένα εργαλείο χειρίζεται και τα δύο άκρα αυτού του βρόχου.
Η τοπική επεξεργασία διατηρεί ιδιωτικά τα ευαίσθητα δεδομένα
Επειδή κάθε βήμα εκτελείται σε JavaScript μέσα στο δικό σας πρόγραμμα περιήγησης, το JSON που επικολλάτε δεν φεύγει ποτέ από τη μηχανή σας. Αυτό δεν είναι απλώς μια εμπορική ευγένεια, είναι μια πρακτική εγγύηση. Μπορείτε να επικολλήσετε μια ακατέργαστη απόκριση API γεμάτη με bearer tokens, μια εξαγωγή δεδομένων χρήστη, ή μια εσωτερική διαμόρφωση υπηρεσίας χωρίς να ανησυχείτε ότι ένας server τρίτου καταγράφει τα δεδομένα. Κλείστε την καρτέλα και τα δεδομένα εξαφανίζονται. Για όποιον εργάζεται υπό κανόνες διαχείρισης δεδομένων, η τοπική επεξεργασία εξαλείφει μια ολόκληρη κατηγορία κινδύνου.
Μόλις το JSON σας είναι καθαρό, ίσως θελήσετε να πάτε παραπέρα. Εξερευνήστε τα υπόλοιπα εργαλεία προγραμματιστών μας, μετατρέψτε μια δομή με JSON σε YAML, ή αποκωδικοποιήστε μια ενσωματωμένη τιμή χρησιμοποιώντας Base64. Κάθε εργαλείο ακολουθεί την ίδια αρχή: γρήγορο, δωρεάν, και επεξεργασμένο εξ ολοκλήρου στο πρόγραμμα περιήγησής σας.
Συχνές ερωτήσεις
Ανεβαίνει το JSON μου σε server;
Όχι. Ο formatter εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας χρησιμοποιώντας JavaScript. Τα δεδομένα σας δεν στέλνονται ποτέ πουθενά, οπότε μπορείτε να επικολλήσετε με ασφάλεια ευαίσθητες αποκρίσεις API ή αρχεία διαμόρφωσης.
Ποια είναι η διαφορά ανάμεσα σε μορφοποίηση και ελαχιστοποίηση;
Η μορφοποίηση προσθέτει εσοχές και αλλαγές γραμμής για να κάνει το JSON ευανάγνωστο. Η ελαχιστοποίηση αφαιρεί όλο τον προαιρετικό λευκό χώρο ώστε το payload να γίνει όσο το δυνατόν πιο μικρό. Τα ίδια τα δεδομένα είναι ταυτόσημα και στις δύο μορφές.
Γιατί αποτυγχάνει η επικύρωση του JSON μου;
Οι πιο συχνές αιτίες είναι τα περιττά κόμματα, τα μονά εισαγωγικά αντί για διπλά, τα κλειδιά χωρίς εισαγωγικά, τα σχόλια, και οι αγκύλες που λείπουν ή δεν ταιριάζουν. Ο validator υποδεικνύει τη γραμμή όπου εμφανίζεται το πρόβλημα.
Μπορώ να χρησιμοποιήσω μονά εισαγωγικά στο JSON;
Όχι. Η προδιαγραφή JSON απαιτεί διπλά εισαγωγικά για όλες τις συμβολοσειρές και τα κλειδιά. Τα μονά εισαγωγικά είναι έγκυρα στη JavaScript αλλά όχι στο JSON, κάτι που είναι συχνή πηγή σφαλμάτων.
Αλλάζει το εργαλείο τα δεδομένα μου όταν τα μορφοποιεί;
Όχι. Η μορφοποίηση μόνο προσθέτει ή αφαιρεί λευκό χώρο. Τα κλειδιά, οι τιμές και η σειρά τους παραμένουν ακριβώς όπως ήταν, ώστε αυτό που διαβάζετε να είναι αυτό που πράγματι έστειλε το API.
Υπάρχει όριο μεγέθους;
Επειδή η επεξεργασία γίνεται τοπικά, το πρακτικό όριο εξαρτάται από τη συσκευή και το πρόγραμμα περιήγησής σας παρά από ένα όριο server. Τυπικές αποκρίσεις API και αρχεία διαμόρφωσης μορφοποιούνται ακαριαία.
