Μορφοποιητής και Επικυρωτής JSON
Επικολλήστε το JSON σας παρακάτω και επιλέξτε μορφοποίηση ή ελαχιστοποίηση. Αν δεν είναι έγκυρο, θα δείτε το πραγματικό σφάλμα του αναλυτή, όχι μια κενή οθόνη — τίποτα από όσα επικολλάτε δεν φεύγει από το πρόγραμμα περιήγησής σας.
Μορφοποίηση, επικύρωση και συρρίκνωση JSON σε ένα βήμα
Η JSON.parse είτε πετυχαίνει είτε πετάει σφάλμα,
οπότε η επικύρωση είναι ένα δωρεάν παραπροϊόν της μορφοποίησης
— αυτό το εργαλείο αναλύει ό,τι επικολλήσετε και σας λέει
ειλικρινά ποιο από τα δύο συνέβη. Η Μορφοποίηση
αναδιατάσσει ένα έγκυρο JSON με την εσοχή που επιλέξετε — 2
κενά, 4 κενά ή Tab — ώστε να διαβάζεται εύκολα, ενώ η Ελαχιστοποίηση αφαιρεί κάθε μη απαραίτητο
χαρακτήρα για το μικρότερο δυνατό φορτίο. Αν η είσοδος δεν
είναι έγκυρη, παίρνετε το πραγματικό SyntaxError
του αναλυτή αντί για μια εικασία φτιαγμένη με το χέρι — είναι
λιγότερο κομψό, αλλά ακριβές, και σχεδόν όλοι οι κινητήρες
επισημαίνουν τη θέση του χαρακτήρα όπου σκόνταψαν.
Πρακτικό παράδειγμα
Είσοδος: {"user":"Ada","admin":true,"roles":["dev","ops"]}
(49 χαρακτήρες, 3 κλειδιά). Η Μορφοποίηση με
εσοχή 2 κενών παράγει:
{
"user": "Ada",
"admin": true,
"roles": [
"dev",
"ops"
]
}
— 75 χαρακτήρες, έτοιμο για ανάγνωση. Η Ελαχιστοποίηση στην ίδια είσοδο την επιστρέφει
ακριβώς όπως ξεκίνησε, στους 49 χαρακτήρες, αφού δεν είχε ήδη
κανένα επιπλέον κενό. Δοκιμάστε τώρα {"user":"Ada","admin":true,} — το κόμμα που
περισσεύει μετά το true είναι μη έγκυρο JSON, και
αυτό το εργαλείο σας δείχνει το πραγματικό σφάλμα του
προγράμματος περιήγησης αντί να αποτύχει σιωπηλά ή να
επινοήσει ένα δικό του.
Συχνές ερωτήσεις
Τι κάνει ένα JSON μη έγκυρο;
Οι πιο συχνές αιτίες: ένα κόμμα που περισσεύει μετά το τελευταίο στοιχείο ενός αντικειμένου ή πίνακα ({"a":1,}), μονά εισαγωγικά αντί για διπλά ('κλειδί' αντί για "κλειδί"), κλειδιά χωρίς εισαγωγικά ({κλειδί: 1} αντί για {"κλειδί": 1}), και σχόλια (// ή /* */ — το αυστηρό JSON δεν δέχεται καμία μορφή σχολίου). Και τα τέσσερα είναι απόλυτα έγκυρα μέσα σε ένα literal αντικείμενο JavaScript, γι' αυτό η επικόλληση κώδικα JS σαν να ήταν JSON αποτυγχάνει ακριβώς για αυτόν τον λόγο.
Γιατί το μήνυμα σφάλματος φαίνεται τόσο τεχνικό;
Επειδή δεν είναι δικό μας κείμενο — είναι το πραγματικό μήνυμα SyntaxError που παράγει η JSON.parse, εμφανισμένο ακριβώς όπως το έγραψε το πρόγραμμα περιήγησης, αντί για μια επινοημένη περιγραφή του πού νομίζουμε ότι βρίσκεται το πρόβλημα. Μπορεί να εμφανιστεί στα αγγλικά ανάλογα με το πρόγραμμα περιήγησης, αλλά είναι ειλικρινές: είναι ακριβώς αυτό που θα έβλεπε κανείς ανοίγοντας την κονσόλα, και σχεδόν πάντα περιλαμβάνει τη θέση του χαρακτήρα όπου σκόνταψε η ανάλυση.
Ανεβαίνουν τα δεδομένα μου σε κάποιον διακομιστή;
Όχι. Η ανάλυση, η μορφοποίηση και η ελαχιστοποίηση γίνονται εξ ολοκλήρου μέσα στο πρόγραμμα περιήγησής σας, με JSON.parse και JSON.stringify — τίποτα από όσα επικολλάτε δεν στέλνεται, δεν αποθηκεύεται και δεν καταγράφεται πουθενά. Ισχύει ο ίδιος κανόνας για κάθε εργαλείο αυτού του site.
Επικυρώνει αυτό το εργαλείο το JSON μου έναντι ενός σχήματος (schema);
Όχι — ελέγχει μόνο τη ΣΥΝΤΑΞΗ: αν τα άγκιστρα είναι ισορροπημένα, αν οι συμβολοσειρές έχουν σωστά εισαγωγικά, αν κάθε κόμμα βρίσκεται στη σωστή θέση. Δεν έχει τρόπο να ξέρει αν τα δεδομένα σας έχουν τα σωστά πεδία, τύπους ή δομή για την εφαρμογή σας — αυτό απαιτεί επικύρωση έναντι JSON Schema, έναν ξεχωριστό δομικό έλεγχο που αυτό το εργαλείο δεν εκτελεί.