0

Μετατροπέας JSON σε TypeScript

Μετατρέψτε το JSON σε διεπαφές TypeScript, ψευδώνυμα τύπου ή ένα σχήμα Zod ζωντανά, με πραγματικό προαιρετικό εντοπισμό πεδίων σε πίνακες.

Επεξεργασία... 0%

Αποτέλεσμα

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

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

Μια εναλλαγή μορφής αλλάζει μόνο τον τρόπο εκτύπωσης της ίδιας συναγόμενης δομής: ένα μπλοκ διεπαφής, ένα ψευδώνυμο τύπου ή ένα σχήμα Zod που δημιουργήθηκε από κλήσεις z.object(), z.array() και z.union() με .optional() και .nullable() όπου ισχύουν. Το ίδιο το Zod είναι ένα ξεχωριστό πακέτο npm (npm install zod) — αυτό το εργαλείο γράφει μόνο την πηγή σχήματος, δεν εγκαθιστά τίποτα για εσάς.

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