tigtools

Επικύρωση JSON

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

Εκτελείται στον περιηγητή σας Χωρίς εγγραφή

Το αποτέλεσμα εμφανίζεται εδώ μόλις επικολλήσετε JSON.

Πώς να το χρησιμοποιήσετε

  1. Επικολλήστε το JSON σας στο πλαίσιο, ανοίξτε ένα αρχείο ή πατήστε «Δοκιμάστε ένα παράδειγμα» για να δείτε αναφορά σφάλματος.
  2. Διαβάστε το αποτέλεσμα: ένα πράσινο μήνυμα για έγκυρο JSON ή το πρώτο σφάλμα με τη γραμμή, τη στήλη του και έναν δείκτη κάτω από το πρόβλημα.
  3. Διορθώστε το σφάλμα που περιγράφει η υπόδειξη και ελέγξτε ξανά· το αποτέλεσμα ενημερώνεται καθώς πληκτρολογείτε.
  4. Για έγκυρο JSON, διαβάστε τα στατιστικά: τύπο ρίζας, αριθμό κλειδιών, βάθος εμφώλευσης και μέγεθος σε byte.

Πώς λειτουργεί

Ο επικυρωτής ελέγχει τη σύνταξη βάσει του προτύπου JSON (RFC 8259 / ECMA-404) χρησιμοποιώντας τον ενσωματωμένο JSON parser του προγράμματος περιήγησης· έτσι, ένα έγγραφο που περνάει εδώ γίνεται αποδεκτό από το JSON.parse της JavaScript και από συμβατούς parsers σε άλλες γλώσσες. Όταν η ανάλυση αποτυγχάνει, ένας αυστηρός ελεγκτής γραμμένος για αυτό το εργαλείο διατρέχει το κείμενο μία φορά για να βρει το πρώτο σφάλμα και την ακριβή γραμμή και στήλη του και εμφανίζει αυτή τη γραμμή με έναν δείκτη ^ κάτω από το πρόβλημα.

Οι υποδείξεις εστιάζουν στα λάθη που κάνουν πραγματικά οι χρήστες όταν γράφουν JSON με το χέρι ή το αντιγράφουν από JavaScript: κόμμα μετά το τελευταίο στοιχείο, συμβολοσειρές με μονά εισαγωγικά, κλειδιά χωρίς εισαγωγικά, σχόλια // ή /* */, τιμές όπως NaN, Infinity ή undefined, αλλαγές γραμμής μέσα σε συμβολοσειρές και δύο έγγραφα JSON επικολλημένα το ένα μετά το άλλο (όπως σε αρχεία JSON Lines). Αναφέρεται μόνο το πρώτο σφάλμα, επειδή ένα λάθος συχνά μπερδεύει όλα όσα ακολουθούν.

Το εργαλείο ελέγχει μόνο τη σύνταξη. Δεν επικυρώνει βάσει JSON Schema, επομένως δεν μπορεί να σας πει αν λείπει κάποιο υποχρεωτικό πεδίο. Επίσης δεν προειδοποιεί για διπλότυπα κλειδιά: το πρότυπο τα επιτρέπει και οι περισσότεροι parsers κρατούν την τελευταία τιμή. Τα στατιστικά μετρούν τα κλειδιά σε κάθε αντικείμενο σε κάθε επίπεδο· το βάθος είναι 1 για ένα επίπεδο αντικείμενο ή πίνακα και αυξάνεται κατά ένα για κάθε επίπεδο ένθεσης.

Παραδείγματα

Ρυθμίσεις αντιγραμμένες από JavaScript

Το {name: 'demo', debug: true,} αποτυγχάνει στη γραμμή 1, στήλη 2 με «Τα κλειδιά αντικειμένου πρέπει να είναι σε διπλά εισαγωγικά». Αφού μπουν εισαγωγικά στο κλειδί, η επόμενη εκτέλεση υποδεικνύει τη συμβολοσειρά με μονά εισαγωγικά και μετά το κόμμα στο τέλος.

Ένα αρχείο καταγραφής με ένα αντικείμενο ανά γραμμή

Η επικόλληση δύο γραμμών όπως {"id":1} και {"id":2} εμφανίζει «περισσότερο περιεχόμενο μετά το τέλος της τιμής JSON» στη γραμμή 2. Κάθε γραμμή είναι έγκυρο JSON από μόνη της (JSON Lines), αλλά μαζί πρέπει να μπουν σε [ ] και να χωριστούν με κόμμα.

Έλεγχος ενός payload API

Μια απόκριση 2 MB επικυρώνεται αμέσως και εμφανίζει τύπο ρίζας: Array, 1,500 στοιχεία ανώτατου επιπέδου και βάθος εμφώλευσης 4, ένας γρήγορος έλεγχος πριν γράψετε κώδικα γι' αυτήν.

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

Επικυρώνει βάσει JSON Schema;

Όχι. Ελέγχει ότι το κείμενο είναι ορθά δομημένο JSON. Ο έλεγχος υποχρεωτικών πεδίων, τύπων ή μορφών απαιτεί επικυρωτή JSON Schema, τον οποίο αυτό το εργαλείο δεν περιλαμβάνει.

Γιατί εμφανίζεται μόνο ένα σφάλμα;

Μετά το πρώτο συντακτικό σφάλμα, ο αναλυτής δεν μπορεί να γνωρίζει τι εννοούσε ο συντάκτης, επομένως τα επόμενα «σφάλματα» είναι συχνά παρενέργειες του πρώτου. Διορθώστε το αναφερόμενο πρόβλημα και το επόμενο, αν υπάρχει, εμφανίζεται αμέσως.

Είναι ποτέ έγκυρα τα σχόλια ή τα κόμματα στο τέλος;

Όχι στο JSON. Μορφές όπως JSON5 και JSONC (που χρησιμοποιούνται σε αρχεία ρυθμίσεων ορισμένων επεξεργαστών) τα επιτρέπουν, αλλά οι τυπικοί αναλυτές JSON τα απορρίπτουν, επομένως εδώ αναφέρονται ως σφάλματα.

Είναι έγκυρο JSON μια μεμονωμένη τιμή όπως 42 ή "hello";

Ναι. Από το RFC 7159, οποιαδήποτε τιμή JSON μπορεί να είναι η ρίζα, όχι μόνο αντικείμενα και πίνακες. Ορισμένα παλαιότερα εργαλεία και API εξακολουθούν να αναμένουν αντικείμενο ή πίνακα στο ανώτατο επίπεδο.

Γιατί μπορεί η στήλη να διαφέρει από τη στήλη του επεξεργαστή μου;

Οι στήλες υπολογίζονται σε μονάδες κώδικα UTF-16, όπως η JavaScript μετρά το μήκος συμβολοσειράς. Τα emoji και ορισμένοι σπάνιοι χαρακτήρες μετρούν ως δύο, και το tab μετρά ως μία στήλη, ενώ οι επεξεργαστές μπορεί να το εμφανίζουν πιο πλατύ.

Απόρρητο

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