TextToolbox Άμεσα εργαλεία κειμένου

Μορφοποιητής JSON

Επικολλήστε JSON παρακάτω, μετά μορφοποιήστε ή ελαχιστοποιήστε. Το μη έγκυρο JSON παίρνει συγκεκριμένο σφάλμα, όχι κενή οθόνη — τίποτα από όσα επικολλάτε δεν φεύγει από το πρόγραμμά σας περιήγησης.

Μορφοποίηση, επικύρωση και συρρίκνωση JSON σε ένα βήμα

Το JSON.parse είτε πετυχαίνει είτε πετάει σφάλμα — οπότε η επικύρωση είναι ένα δωρεάν παραπροϊόν της μορφοποίησης. Αυτό το εργαλείο αναλύει ό,τι επικολλήσετε· αν είναι έγκυρο, η Μορφοποίηση το αναδιατάσσει με εσοχή 2 κενών για ευανάγνωστο αποτέλεσμα, και η Ελαχιστοποίηση αφαιρεί κάθε μη απαραίτητο χαρακτήρα για το μικρότερο δυνατό φορτίο. Αν δεν είναι έγκυρο, παίρνετε το πραγματικό μήνυμα σφάλματος του αναλυτή, μαζί με τη θέση χαρακτήρα που δείχνει, ώστε να πάτε κατευθείαν στο πρόβλημα αντί να σαρώνετε όλο το αρχείο.

Παράδειγμα

Είσοδος: {"user":"Ada","admin":true,"roles":["dev","ops"]} (49 bytes, 3 κλειδιά). Η Μορφοποίηση παράγει:

{
  "user": "Ada",
  "admin": true,
  "roles": [
    "dev",
    "ops"
  ]
}

— 75 bytes, μορφοποιημένο για ανάγνωση. Η Ελαχιστοποίηση στην ίδια είσοδο την επιστρέφει ακριβώς όπως ξεκίνησε, στα 49 bytes, αφού δεν είχε ήδη κανένα επιπλέον κενό. Δοκιμάστε τώρα {"user":"Ada","admin":true,} — το κόμμα πριν το } μετά το true είναι μη έγκυρο JSON, και το εργαλείο αναφέρει το πραγματικό σφάλμα του αναλυτή μαζί με τη θέση του χαρακτήρα στον οποίο σκόνταψε, αντί να αποτύχει σιωπηλά. Ο ίδιος αναλυτής επιστρέφει εδώ το μήνυμα Expected double-quoted property name in JSON at position 27 (επιβεβαιωμένο μέσω node) — το εργαλείο το πλαισιώνει ως «Μη έγκυρο JSON κοντά στη θέση 27: …» αντί να το μεταφράζει, αφού είναι το πραγματικό μήνυμα του προγράμματος περιήγησής σας.

Συχνές ερωτήσεις

Τι κάνει το JSON μη έγκυρο;

Οι πιο συχνοί λόγοι: κόμμα στο τέλος πριν κλείσει ένα αντικείμενο ή πίνακας ({"a":1,}), μονά εισαγωγικά αντί για διπλά ('key' αντί για "key"), κλειδιά χωρίς εισαγωγικά ({key: 1} αντί για {"key": 1}), και σχόλια (// ή /* */ — το αυστηρό JSON δεν έχει καθόλου σύνταξη σχολίων). Και τα τέσσερα είναι συνηθισμένα σε αντικείμενα JavaScript, γι' αυτό η επικόλληση κώδικα JS ως JSON αποτυγχάνει τόσο συχνά.

Ανεβαίνουν τα δεδομένα μου κάπου;

Όχι. Η ανάλυση, η μορφοποίηση και η ελαχιστοποίηση γίνονται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας μέσω JSON.parse και JSON.stringify — τίποτα από όσα επικολλάτε δεν στέλνεται σε διακομιστή, δεν αποθηκεύεται και δεν καταγράφεται.

Τι εξοικονομεί πραγματικά η ελαχιστοποίηση;

Η ελαχιστοποίηση αφαιρεί όλα τα κενά — εσοχές, αλλαγές γραμμής, κενά μετά τις άνω-κάτω τελείες — που προσθέτει η μορφοποίηση για να διαβάζεται εύκολα από ανθρώπους. Αυτό μικραίνει το μέγεθος του φορτίου, κάτι που έχει σημασία για απαντήσεις API και αρχεία ρυθμίσεων που στέλνονται μέσω δικτύου. Δεν είναι απόκρυψη ή κρυπτογράφηση: κάθε κλειδί και τιμή παραμένει εκεί σε απλό κείμενο, απλώς πιο πυκνά πακεταρισμένο.

Επικυρώνει το JSON μου έναντι ενός σχήματος (schema);

Όχι — αυτό το εργαλείο ελέγχει μόνο τη ΣΥΝΤΑΞΗ: αν τα άγκιστρα είναι ισορροπημένα, αν οι συμβολοσειρές έχουν σωστά εισαγωγικά, αν κάθε κόμμα βρίσκεται εκεί που πρέπει. Δεν έχει ιδέα αν τα δεδομένα σας έχουν τα σωστά πεδία, τύπους ή δομή για την εφαρμογή σας. Γι' αυτό χρειάζεστε επικύρωση JSON Schema, έναν ξεχωριστό, δομικό έλεγχο που αυτό το εργαλείο δεν κάνει.