XML σε Μετατροπέας JSON
Μετατρέψτε δεδομένα ή αρχεία XML σε μορφή JSON αμέσως στο πρόγραμμα περιήγησής σας. Υποστηρίζει προσαρμοσμένη εσοχή και χειρίζεται ένθετες δομές.
Επιλέξτε αρχείο XML
ή σύρετε και αποθέστε εδώ
Μετατρέψτε δεδομένα ή αρχεία XML σε μορφή JSON αμέσως στο πρόγραμμα περιήγησής σας. Υποστηρίζει προσαρμοσμένη εσοχή και χειρίζεται ένθετες δομές.
ή σύρετε και αποθέστε εδώ
Τα XML και JSON είναι και οι δύο μορφές ανταλλαγής δεδομένων, αλλά προέρχονται από διαφορετικές εποχές του ιστού. Η XML, που τυποποιήθηκε το 1998, σχεδιάστηκε ως μια αυτο-περιγραφόμενη μορφή σήμανσης με χαρακτηριστικά, χώρους ονομάτων και επικύρωση σχήματος. Το JSON εμφανίστηκε στις αρχές της δεκαετίας του 2000 ως μια ελαφρύτερη μορφή που ταιριάζει καλύτερα σε χρόνους εκτέλεσης JavaScript και σύγχρονα API. Τα περισσότερα νέα web API μιλούν JSON. πολλά παλαιότερα συστήματα — υπηρεσίες SOAP, ροές RSS, αρχεία διαμόρφωσης, εταιρικές ενοποιήσεις — εξακολουθούν να παράγουν XML. Η μετατροπή μεταξύ τους είναι μια από τις πιο κοινές εργασίες διαλειτουργικότητας στη σύγχρονη ανάπτυξη.
Η μετατροπή δεν είναι απολύτως χωρίς απώλειες, επειδή οι δύο μορφές έχουν διαφορετική εκφραστική ισχύ. Η XML έχει χαρακτηριστικά (τα οποία το JSON δεν διαθέτει εγγενώς), κάνει διάκριση μεταξύ περιεχομένου κειμένου και ονομάτων στοιχείων και υποστηρίζει μικτό περιεχόμενο (στοιχεία που περιέχουν τόσο κείμενο όσο και θυγατρικά στοιχεία). Το απλό μοντέλο αντικειμένου/πίνακα της JSON δεν μπορεί να αναπαραστήσει απευθείας αυτά τα χαρακτηριστικά, επομένως οι μετατροπείς εφαρμόζουν συμβάσεις: τα χαρακτηριστικά γίνονται κλειδιά με πρόθεμα @, το περιεχόμενο κειμένου γίνεται κλειδί #κειμένου και ούτω καθεξής.
Αυτός ο μετατροπέας αναλύει την XML χρησιμοποιώντας τον ενσωματωμένο DOMParser του προγράμματος περιήγησης και περπατά το δέντρο DOM που προκύπτει για την παραγωγή JSON. Τα στοιχεία με το ίδιο όνομα ετικέτας με τα αδέρφια συλλέγονται σε πίνακες. Τα χαρακτηριστικά πηγαίνουν σε ειδικά κλειδιά. Οι χώροι ονομάτων και οι οδηγίες επεξεργασίας διατηρούνται όταν υπάρχουν. Το αποτέλεσμα είναι αναγνώσιμο από τον άνθρωπο JSON που επιστρέφει εύλογα πίσω στο XML.
Ο πιο σύγχρονος κώδικας εφαρμογής είναι πιο άνετος με το JSON. Η JavaScript αναλύει το JSON εγγενώς, η λειτουργική μονάδα json της Python βρίσκεται στην τυπική βιβλιοθήκη και σχεδόν κάθε άλλη γλώσσα έχει ισοδύναμη υποστήριξη JSON πρώτης κατηγορίας. Η επεξεργασία XML απαιτεί εισαγωγή πρόσθετων βιβλιοθηκών και εγγραφή περισσότερων boilerplate. Η μετατροπή της εισερχόμενης XML σε JSON πριν από την επεξεργασία είναι συχνά η πιο γρήγορη διαδρομή από την εξωτερική τροφοδοσία XML στην εσωτερική δομή δεδομένων.
Το Tooling βασίζεται επίσης στο JSON. Διακοσμητές JSON, επικυρωτές, επικυρωτές σχήματος, γλώσσες ερωτημάτων (jq, JSONPath) και θεατές είναι άφθονα. τα ισοδύναμα XML είναι λιγότερα και συχνά παλαιότερα. Η εργασία σε JSON ξεκλειδώνει ένα πλουσιότερο οικοσύστημα εργαλείων.
Επικολλήστε XML, λάβετε JSON.
Το DOMParser παράγει ένα XML DOM πανομοιότυπο με αυτό που χρησιμοποιεί το πρόγραμμα περιήγησης για σελίδες XHTML. Ο μετατροπέας περπατά αυτό το DOM αναδρομικά. Για κάθε στοιχείο δημιουργεί ένα αντικείμενο JSON: τα χαρακτηριστικά γίνονται κλειδιά με πρόθεμα @ (π.χ. @id, @class). Τα θυγατρικά στοιχεία του στοιχείου επανέρχονται στην ίδια δομή. Το περιεχόμενο κειμένου, όταν υπάρχει δίπλα σε παιδιά, βρίσκεται κάτω από ένα κλειδί #κειμένου.
Επαναλαμβανόμενα θυγατρικά στοιχεία με το ίδιο όνομα ετικέτας συλλέγονται σε έναν πίνακα JSON. Ένα μόνο θυγατρικό ενός συγκεκριμένου ονόματος εμφανίζεται ως τιμή αντικειμένου. πολλά παιδιά εμφανίζονται ως μια σειρά αντικειμένων. Αυτή η σύμβαση λειτουργεί καλά στην πράξη, αλλά σημαίνει ότι το σχήμα JSON εξαρτάται από το εάν τα στοιχεία εμφανίζονται μία φορά ή πολλές φορές — μια γνωστή ατέλεια της αντιστοίχισης XML σε JSON.
Οι χώροι ονομάτων διατηρούνται ως μέρος των ονομάτων στοιχείων (πρόθεμα:localName). Οι οδηγίες επεξεργασίας και οι ενότητες CDATA μετατρέπονται σε περιεχόμενο κειμένου. Οι δηλώσεις XML και τα DOCTYPE αφαιρούνται από την έξοδο JSON αλλά δεν επηρεάζουν τα δεδομένα.