Δωρεάν μετατροπέας

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

Μετατρέψτε δεδομένα ή αρχεία XML σε μορφή JSON αμέσως στο πρόγραμμα περιήγησής σας. Υποστηρίζει προσαρμοσμένη εσοχή και χειρίζεται ένθετες δομές.

Επιλέξτε αρχείο XML

ή σύρετε και αποθέστε εδώ

Ή

Σχετικά με αυτό το εργαλείο

Τα XML και JSON είναι και οι δύο μορφές ανταλλαγής δεδομένων, αλλά προέρχονται από διαφορετικές εποχές του ιστού. Η XML, που τυποποιήθηκε το 1998, σχεδιάστηκε ως μια αυτο-περιγραφόμενη μορφή σήμανσης με χαρακτηριστικά, χώρους ονομάτων και επικύρωση σχήματος. Το JSON εμφανίστηκε στις αρχές της δεκαετίας του 2000 ως μια ελαφρύτερη μορφή που ταιριάζει καλύτερα σε χρόνους εκτέλεσης JavaScript και σύγχρονα API. Τα περισσότερα νέα web API μιλούν JSON. πολλά παλαιότερα συστήματα — υπηρεσίες SOAP, ροές RSS, αρχεία διαμόρφωσης, εταιρικές ενοποιήσεις — εξακολουθούν να παράγουν XML. Η μετατροπή μεταξύ τους είναι μια από τις πιο κοινές εργασίες διαλειτουργικότητας στη σύγχρονη ανάπτυξη.

Η μετατροπή δεν είναι απολύτως χωρίς απώλειες, επειδή οι δύο μορφές έχουν διαφορετική εκφραστική ισχύ. Η XML έχει χαρακτηριστικά (τα οποία το JSON δεν διαθέτει εγγενώς), κάνει διάκριση μεταξύ περιεχομένου κειμένου και ονομάτων στοιχείων και υποστηρίζει μικτό περιεχόμενο (στοιχεία που περιέχουν τόσο κείμενο όσο και θυγατρικά στοιχεία). Το απλό μοντέλο αντικειμένου/πίνακα της JSON δεν μπορεί να αναπαραστήσει απευθείας αυτά τα χαρακτηριστικά, επομένως οι μετατροπείς εφαρμόζουν συμβάσεις: τα χαρακτηριστικά γίνονται κλειδιά με πρόθεμα @, το περιεχόμενο κειμένου γίνεται κλειδί #κειμένου και ούτω καθεξής.

Αυτός ο μετατροπέας αναλύει την XML χρησιμοποιώντας τον ενσωματωμένο DOMParser του προγράμματος περιήγησης και περπατά το δέντρο DOM που προκύπτει για την παραγωγή JSON. Τα στοιχεία με το ίδιο όνομα ετικέτας με τα αδέρφια συλλέγονται σε πίνακες. Τα χαρακτηριστικά πηγαίνουν σε ειδικά κλειδιά. Οι χώροι ονομάτων και οι οδηγίες επεξεργασίας διατηρούνται όταν υπάρχουν. Το αποτέλεσμα είναι αναγνώσιμο από τον άνθρωπο JSON που επιστρέφει εύλογα πίσω στο XML.

Γιατί να μετατρέψετε XML σε JSON

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

Το Tooling βασίζεται επίσης στο JSON. Διακοσμητές JSON, επικυρωτές, επικυρωτές σχήματος, γλώσσες ερωτημάτων (jq, JSONPath) και θεατές είναι άφθονα. τα ισοδύναμα XML είναι λιγότερα και συχνά παλαιότερα. Η εργασία σε JSON ξεκλειδώνει ένα πλουσιότερο οικοσύστημα εργαλείων.

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

Επικολλήστε XML, λάβετε JSON.

  1. Επικολλήστε ή ανεβάστε το XML σας: Επικολλήστε κείμενο XML στην περιοχή εισαγωγής ή αποθέστε ένα αρχείο. Η XML πρέπει να είναι καλά διαμορφωμένη. Η κακή μορφή XML παράγει ένα σφάλμα ανάλυσης παρά μια εικασία.
  2. Μετατροπή: Το DOMParser δημιουργεί ένα DOM, ο μετατροπέας παρακολουθεί κάθε στοιχείο και το JSON δημιουργείται χρησιμοποιώντας κλειδιά χαρακτηριστικών (@attr) και κλειδιά περιεχομένου κειμένου (#text) όπου χρειάζεται. Τα αδερφικά στοιχεία με το ίδιο όνομα γίνονται πίνακες.
  3. Ελέγξτε τη δομή: Επιθεωρήστε το JSON για να επιβεβαιώσετε ότι τα χαρακτηριστικά, το κείμενο και η ένθεση αντιστοιχίζονται όπως αναμένεται. Οι συμβάσεις που χρησιμοποιούνται (π.χ. @ για χαρακτηριστικά) είναι ορατές στην έξοδο.
  4. Λήψη ή αντιγραφή: Αποθήκευση ως .json ή αντιγραφή στο πρόχειρο.

Κοινές περιπτώσεις χρήσης

Τεχνικές λεπτομέρειες

Το DOMParser παράγει ένα XML DOM πανομοιότυπο με αυτό που χρησιμοποιεί το πρόγραμμα περιήγησης για σελίδες XHTML. Ο μετατροπέας περπατά αυτό το DOM αναδρομικά. Για κάθε στοιχείο δημιουργεί ένα αντικείμενο JSON: τα χαρακτηριστικά γίνονται κλειδιά με πρόθεμα @ (π.χ. @id, @class). Τα θυγατρικά στοιχεία του στοιχείου επανέρχονται στην ίδια δομή. Το περιεχόμενο κειμένου, όταν υπάρχει δίπλα σε παιδιά, βρίσκεται κάτω από ένα κλειδί #κειμένου.

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

Οι χώροι ονομάτων διατηρούνται ως μέρος των ονομάτων στοιχείων (πρόθεμα:localName). Οι οδηγίες επεξεργασίας και οι ενότητες CDATA μετατρέπονται σε περιεχόμενο κειμένου. Οι δηλώσεις XML και τα DOCTYPE αφαιρούνται από την έξοδο JSON αλλά δεν επηρεάζουν τα δεδομένα.

Βέλτιστες Πρακτικές

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

Η μετατροπή XML σε JSON αλλάζει το περιεχόμενο;
Το περιεχόμενο διατηρείται όσο το δυνατόν ακριβέστερα. Ωστόσο, ορισμένες λειτουργίες που σχετίζονται με τη μορφή ενδέχεται να μην έχουν άμεσα ισοδύναμα, επομένως ενδέχεται να προκύψουν μικρές διαφορές μορφοποίησης.
Γιατί να μετατρέψετε δεδομένα σε μορφή JSON;
Το JSON είναι η τυπική μορφή δεδομένων για web API και εφαρμογές JavaScript. Είναι αναγνώσιμο από τον άνθρωπο, υποστηρίζεται ευρέως από γλώσσες προγραμματισμού και έχει απλούστερη σύνταξη από την XML.
Ο μετατροπέας χειρίζεται ένθετες ή πολύπλοκες δομές XML;
Ναι. Το εργαλείο αναλύει σωστά τα ένθετα αντικείμενα, τους πίνακες και όλους τους τυπικούς τύπους δεδομένων XML, διατηρώντας την πλήρη δομή δεδομένων στην έξοδο JSON.
Είναι αυτή η μετατροπή ασφαλής και ιδιωτική;
Ναι. Όλη η επεξεργασία γίνεται τοπικά στο πρόγραμμα περιήγησής σας. Τα δεδομένα σας δεν φεύγουν ποτέ από τη συσκευή σας — χωρίς μεταφόρτωση διακομιστή, χωρίς επεξεργασία στο cloud, χωρίς συλλογή δεδομένων.
Γίνονται χειρισμοί ενοτήτων CDATA;
Ναι. Το περιεχόμενο CDATA μετατρέπεται σε απλό κείμενο στην έξοδο JSON. Η ίδια η συσκευασία CDATA δεν διατηρείται, αλλά το περιεχόμενο διατηρείται.
Τα δεδομένα μου μεταφορτώνονται σε διακομιστή;
Όχι. Το DOMParser εκτελείται στο πρόγραμμα περιήγησής σας. η μετατροπή πραγματοποιείται εξ ολοκλήρου στη συσκευή σας.
Θα επιστρέψει το JSON μετ' επιστροφής στο XML;
Ναι, εάν χρησιμοποιείτε την αντίστροφη σύμβαση (το εργαλείο JSON σε XML ακολουθεί τους ίδιους κανόνες @attr και #text). Το ταξίδι μετ' επιστροφής διατηρεί τη δομή για τυπική XML. ορισμένες ακραίες περιπτώσεις (παραγγελία μικτού περιεχομένου, οδηγίες επεξεργασίας) ενδέχεται να μην επιβιώσουν τέλεια.
Ποιο είναι το μέγιστο μέγεθος εισόδου;
Έως 50 MB. Το DOMParser περιορίζεται στη μνήμη από το πρόγραμμα περιήγησής σας. Τα πολύ μεγάλα αρχεία XML ενδέχεται να επιβραδυνθούν ή να μην αναλυθούν.