Μετατροπέας JSON σε XML
Μετατρέψτε JSON σε XML και XML σε JSON στο πρόγραμμα περιήγησής σας, με χειρισμό χαρακτηριστικών, επαναλαμβανόμενων στοιχείων και CDATA.
Πώς να χρησιμοποιήσετε τον μετατροπέα JSON σε XML
- Επιλέξτε την κατεύθυνση: JSON → XML ή XML → JSON.
- Επικολλήστε τα δεδομένα σας ή πατήστε Άνοιγμα αρχείου για να φορτώσετε ένα αρχείο
.jsonή.xml(έως 10 MB). - Ορίστε τις επιλογές: Εσοχή (2 κενά, 4 κενά, Tab ή Καμία (συμπαγές)) και για τις δύο κατευθύνσεις· Ριζικό στοιχείο και Προσθήκη δήλωσης XML για JSON → XML· Μετατροπή αριθμών και λογικών τιμών για XML → JSON.
- Πατήστε Μετατροπή. Το αποτέλεσμα ενημερώνεται και καθώς πληκτρολογείτε, και τα σφάλματα δείχνουν τη γραμμή και τη στήλη όπου βρέθηκε το πρόβλημα.
- Αντιγράψτε ή κατεβάστε το αποτέλεσμα. Το Αντιστροφή κατεύθυνσης βάζει την έξοδο πίσω στην είσοδο ώστε να ελέγξετε την αμφίδρομη μετατροπή.
Πώς αντιστοιχίζεται το JSON σε XML
Το XML και το JSON δεν έχουν το ίδιο μοντέλο δεδομένων, οπότε κάθε μετατροπέας ακολουθεί μια σύμβαση. Το εργαλείο χρησιμοποιεί την ευρέως διαδεδομένη σύμβαση της βιβλιοθήκης fast-xml-parser:
| JSON | XML |
|---|---|
{"title": "Dune"} |
<title>Dune</title> |
{"book": {"@id": "42"}} |
<book id="42"/> |
{"p": {"@lang": "en", "#text": "Hi"}} |
<p lang="en">Hi</p> |
{"tag": ["a", "b"]} |
<tag>a</tag><tag>b</tag> |
- Τα κλειδιά που ξεκινούν με
@γίνονται χαρακτηριστικά και το κλειδί#textκρατά το κείμενο ενός στοιχείου που έχει και χαρακτηριστικά. - Ένας πίνακας γίνεται επαναλαμβανόμενο στοιχείο με το ίδιο όνομα.
- Ένα έγγραφο XML χρειάζεται ακριβώς ένα ριζικό στοιχείο. Αν το JSON σας είναι αντικείμενο με ένα μόνο κλειδί του οποίου η τιμή είναι αντικείμενο, αυτό το κλειδί γίνεται η ρίζα. Διαφορετικά, ολόκληρη η τιμή τυλίγεται στο στοιχείο που ορίζεται στο Ριζικό στοιχείο (
rootαπό προεπιλογή) και τα στοιχεία πίνακα ανώτατου επιπέδου γίνονται στοιχεία<item>. - Τα κλειδιά που δεν είναι έγκυρα ονόματα XML διορθώνονται: τα κενά και τα σύμβολα γίνονται
_και ένα όνομα που ξεκινά με ψηφίο παίρνει μπροστά_(το"1st place"→<_1st_place>). - Το
nullκαι οι κενές συμβολοσειρές δίνουν κενό στοιχείο όπως το<note/>. Οι ειδικοί χαρακτήρες (&,<,>, εισαγωγικά) μετατρέπονται με escape.
Πώς αντιστοιχίζεται το XML σε JSON
- Τα χαρακτηριστικά γίνονται κλειδιά με πρόθεμα
@και το μεικτό κείμενο γίνεται#text. - Τα επαναλαμβανόμενα στοιχεία γίνονται πίνακας· ένα στοιχείο που εμφανίζεται μία φορά γίνεται μία μόνο τιμή.
- Τα τμήματα CDATA συγχωνεύονται στο κείμενο και οι οντότητες όπως το
&αποκωδικοποιούνται. Η δήλωση XML, οι οδηγίες επεξεργασίας και τα σχόλια απορρίπτονται. - Με το Μετατροπή αριθμών και λογικών τιμών, το
<price>12.5</price>γίνεται12.5και τοtrueγίνεται λογική τιμή, ενώ τιμές με μηδενικό στην αρχή, όπως το007, μένουν συμβολοσειρές. Απενεργοποιήστε την επιλογή για να μένει κάθε τιμή κείμενο.
Πριν από τη μετατροπή, το XML ελέγχεται ως προς τον σωστό σχηματισμό: μια ετικέτα κλεισίματος που λείπει, μια ετικέτα που δεν ταιριάζει ή ένα & χωρίς escape αναφέρονται με τη γραμμή και τη στήλη τους. Όλα εκτελούνται τοπικά στο πρόγραμμα περιήγησής σας.
Συχνές ερωτήσεις
Στέλνονται τα δεδομένα μου σε διακομιστή;
Όχι. Η μετατροπή εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας. Οι ροές XML, τα μηνύματα SOAP και τα αρχεία ρυθμίσεων μένουν στον υπολογιστή σας.
Γιατί ένα στοιχείο γίνεται πίνακας σε ένα αρχείο και αντικείμενο σε άλλο;
Το XML δεν λέει αν ένα στοιχείο είναι λίστα. Όταν το <tag> εμφανίζεται δύο φορές, γίνεται πίνακας· όταν εμφανίζεται μία φορά, είναι μία μόνο τιμή. Αν ο κώδικάς σας περιμένει πίνακα, χειριστείτε και τις δύο περιπτώσεις ή προσθέστε ένα δεύτερο στοιχείο κατά τη δοκιμή.
Γιατί η αμφίδρομη μετατροπή δεν είναι πάντα πανομοιότυπη;
Ορισμένες πληροφορίες δεν έχουν ισοδύναμο στην άλλη πλευρά: τα σχόλια, η σειρά του μεικτού περιεχομένου ή η διαφορά ανάμεσα σε πίνακα ενός στοιχείου και σε μία μόνο τιμή. Για τυπικά έγγραφα δεδομένων, η μετατροπή JSON → XML → JSON δίνει πίσω την ίδια δομή.
Μπορώ να χρησιμοποιήσω χώρους ονομάτων (namespaces);
Ναι. Τα ονόματα με πρόθεμα όπως το soap:Envelope και τα χαρακτηριστικά όπως το @xmlns:soap διατηρούνται ως έχουν και προς τις δύο κατευθύνσεις.
Επικυρώνει με βάση ένα schema XSD;
Όχι. Ελέγχει ότι το XML είναι σωστά σχηματισμένο, αλλά δεν το επικυρώνει με DTD ή schema XSD.
Σχετικά εργαλεία
- Μορφοποίηση και επικύρωση JSON Δωρεάν μορφοποίηση και επικύρωση JSON που κάνει beautify, minify και έλεγχο του JSON στο πρόγραμμα περιήγησής σας, με συντακτικά σφάλματα ανά γραμμή και στήλη.
- Μετατροπέας JSON σε YAML Μετατρέψτε JSON σε YAML και YAML σε JSON στο πρόγραμμα περιήγησής σας, με υποστήριξη anchors, merge keys και αρχείων πολλών εγγράφων. Δεν γίνεται μεταφόρτωση.
- Μετατροπέας JSON σε CSV Μετατρέψτε JSON σε CSV και CSV σε JSON στο πρόγραμμα περιήγησής σας. Τα εμφωλευμένα κλειδιά γίνονται στήλες και τίποτα δεν μεταφορτώνεται.