Μετατροπέας JSON σε YAML
Μετατρέψτε JSON σε YAML και YAML σε JSON στο πρόγραμμα περιήγησής σας, με υποστήριξη anchors, merge keys και αρχείων πολλών εγγράφων. Δεν γίνεται μεταφόρτωση.
Πώς να χρησιμοποιήσετε τον μετατροπέα JSON σε YAML
- Επιλέξτε την κατεύθυνση: JSON → YAML ή YAML → JSON.
- Επικολλήστε τα δεδομένα σας ή πατήστε Άνοιγμα αρχείου για να φορτώσετε ένα αρχείο
.json,.yamlή.yml(έως 10 MB). - Επιλέξτε την Εσοχή (2 ή 4 κενά) και, αν θέλετε, την Ταξινόμηση κλειδιών αλφαβητικά.
- Πατήστε Μετατροπή ή απλώς συνεχίστε να πληκτρολογείτε: το αποτέλεσμα ενημερώνεται αυτόματα. Αν η είσοδος δεν είναι έγκυρη, το μήνυμα σφάλματος δίνει τη γραμμή και τη στήλη του προβλήματος.
- Αντιγράψτε ή κατεβάστε το αποτέλεσμα. Το Αντιστροφή κατεύθυνσης στέλνει την έξοδο πίσω στην είσοδο για να τη μετατρέψετε προς την άλλη κατεύθυνση.
JSON και YAML: ίδια δεδομένα, διαφορετική σύνταξη
Το YAML είναι στην πράξη υπερσύνολο του JSON: κάθε έγγραφο JSON περιγράφει δεδομένα που το YAML μπορεί να εκφράσει, και το YAML προσθέτει μια ελαφρύτερη σύνταξη που είναι ευκολότερη για τον άνθρωπο στην ανάγνωση και την επεξεργασία. Γι’ αυτό τα μανιφέστα του Kubernetes, τα αρχεία Docker Compose, οι ροές GitHub Actions και GitLab CI, τα playbooks του Ansible και οι προδιαγραφές OpenAPI γράφονται συνήθως σε YAML, ενώ τα API και τα προγράμματα ανταλλάσσουν JSON.
Τα ίδια δεδομένα και στις δύο μορφές:
{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
- 80
- 443
env:
DEBUG: false
JSON → YAML
Ο μετατροπέας γράφει YAML τύπου μπλοκ: ένα κλειδί ανά γραμμή, λίστες με παύλες και εμφωλευμένα αντικείμενα με εσοχές. Οι μεγάλες συμβολοσειρές δεν διπλώνονται ποτέ και οι συμβολοσειρές πολλών γραμμών χρησιμοποιούν το κυριολεκτικό στυλ | ώστε οι αλλαγές γραμμής να διατηρούνται ακριβώς. Οι συμβολοσειρές που το YAML θα διάβαζε αλλιώς ως άλλον τύπο μπαίνουν σε εισαγωγικά: τα "yes", "1.0" ή "null" μένουν συμβολοσειρές μετά από αμφίδρομη μετατροπή. Η Ταξινόμηση κλειδιών ταξινομεί αλφαβητικά τα κλειδιά κάθε αντικειμένου, κάτι που κάνει πιο εύκολη τη σύγκριση δύο αρχείων ρυθμίσεων.
YAML → JSON
Το YAML διαβάζεται με το βασικό σχήμα του YAML 1.2, τους ίδιους κανόνες που χρησιμοποιούν τα περισσότερα σύγχρονα εργαλεία:
- Τα
true/false, οι αριθμοί και τοnull(ή~) γίνονται τιμές JSON· ταyes,no,onκαιoffμένουν συμβολοσειρές, όπως απαιτεί η προδιαγραφή YAML 1.2. - Τα anchors και aliases (
&base,*base) αναπτύσσονται και τα merge keys (<<: *base), συνηθισμένα σε αρχεία CI, υποστηρίζονται. - Ένα αρχείο με πολλά έγγραφα χωρισμένα με
---γίνεται πίνακας JSON με ένα στοιχείο ανά έγγραφο και ένα μήνυμα σας λέει πόσα συνδυάστηκαν. - Τα σχόλια απορρίπτονται, αφού το JSON δεν έχει σχόλια.
- Τα
.infκαι.nanδεν έχουν ισοδύναμο στο JSON· γράφονται ως οι συμβολοσειρές"Infinity"και"NaN".
Για να προστατευτεί το πρόγραμμα περιήγησής σας από αρχεία «billion laughs», όπου λίγα aliases επεκτείνονται σε δισεκατομμύρια τιμές, ένα έγγραφο που επεκτείνεται σε περισσότερες από ένα εκατομμύριο τιμές απορρίπτεται.
Συνηθισμένα λάθη στο YAML
- Tab για εσοχή: το YAML επιτρέπει μόνο κενά.
- Ασυνεπείς εσοχές: τα στοιχεία της ίδιας λίστας ή του ίδιου αντικειμένου πρέπει να ξεκινούν στην ίδια στήλη.
- Έλλειψη κενού μετά την άνω και κάτω τελεία: το
key:valueείναι μία μόνο συμβολοσειρά, ενώ τοkey: valueείναι ζεύγος κλειδιού-τιμής. - Ειδικοί χαρακτήρες χωρίς εισαγωγικά: μια τιμή που ξεκινά με
@, backtick,*,&ή!, ή που περιέχει:ή#, πρέπει να μπαίνει σε εισαγωγικά.
Συχνές ερωτήσεις
Στέλνεται το αρχείο μου σε διακομιστή;
Όχι. Η μετατροπή εκτελείται στο πρόγραμμα περιήγησής σας και τα αρχεία ρυθμίσεων, τα μυστικά ή τα δεδομένα API σας δεν φεύγουν ποτέ από τον υπολογιστή σας.
Γιατί τα «yes» και «no» δεν μετατρέπονται σε λογικές τιμές;
Από το YAML 1.2 και μετά, μόνο τα true και false είναι λογικές τιμές. Οι παλαιότεροι αναλυτές YAML 1.1 θεωρούσαν λογικές τιμές τα yes, no, on και off, κάτι που προκάλεσε το περίφημο «πρόβλημα της Νορβηγίας» (ο κωδικός χώρας NO διαβαζόταν ως false). Το εργαλείο ακολουθεί το YAML 1.2.
Διατηρούνται τα σχόλια YAML;
Όχι. Το JSON δεν έχει σχόλια, οπότε χάνονται στη μετατροπή YAML → JSON. Κατά τη μετατροπή JSON → YAML μπορείτε να προσθέσετε σχόλια στο αποτέλεσμα εκ των υστέρων.
Μπορώ να μετατρέψω ένα αρχείο Kubernetes με πολλούς πόρους;
Ναι. Κάθε πόρος που χωρίζεται με --- γίνεται ένα στοιχείο ενός πίνακα JSON. Η μετατροπή αυτού του πίνακα πίσω σε YAML δίνει ένα μόνο έγγραφο που περιέχει μια λίστα.
Αλλάζει ο μετατροπέας τη σειρά των κλειδιών;
Όχι, εκτός αν επιλέξετε την Ταξινόμηση κλειδιών: τα κλειδιά κρατούν τη σειρά με την οποία εμφανίζονται στην είσοδό σας. Η μοναδική εξαίρεση προέρχεται από την ίδια τη JavaScript: τα κλειδιά που είναι ακέραιοι αριθμοί, όπως το "10" ή το "2", τοποθετούνται πρώτα, σε αύξουσα σειρά.
Σχετικά εργαλεία
- Μορφοποίηση και επικύρωση JSON Δωρεάν μορφοποίηση και επικύρωση JSON που κάνει beautify, minify και έλεγχο του JSON στο πρόγραμμα περιήγησής σας, με συντακτικά σφάλματα ανά γραμμή και στήλη.
- Μετατροπέας JSON σε CSV Μετατρέψτε JSON σε CSV και CSV σε JSON στο πρόγραμμα περιήγησής σας. Τα εμφωλευμένα κλειδιά γίνονται στήλες και τίποτα δεν μεταφορτώνεται.
- Μετατροπέας JSON σε XML Μετατρέψτε JSON σε XML και XML σε JSON στο πρόγραμμα περιήγησής σας, με χειρισμό χαρακτηριστικών, επαναλαμβανόμενων στοιχείων και CDATA.