Μετατροπή JSON σε YAML

Μετατρέψτε JSON σε καθαρό, ευανάγνωστο YAML για Kubernetes, Docker Compose, GitHub Actions ή Ansible, με πλήρη έλεγχο σε εσοχές, στυλ και εισαγωγικά.

Τρέχει στον browser σαςΧωρίς εγγραφήΤίποτα δεν ανεβαίνει

Έξοδος JSON

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

  1. Επικολλήστε JSON στο αριστερό πλαίσιο ή ανοίξτε ένα αρχείο .json.
  2. Το YAML εμφανίζεται δεξιά καθώς πληκτρολογείτε.
  3. Επιλέξτε εσοχή (2 ή 4 κενά) και στυλ: block (ένα κλειδί ανά γραμμή) ή flow ({a: 1}/[x, y]) από ένα συγκεκριμένο επίπεδο ένθεσης.
  4. Διαλέξτε στυλ εισαγωγικών και τσεκάρετε Ταξινόμηση κλειδιών αν θέλετε αλφαβητική σειρά.
  5. Αντιγράψτε ή κατεβάστε το YAML. Το μη έγκυρο JSON αναφέρεται με γραμμή, στήλη και πιθανή αιτία.

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

Το JSON είναι ιδανικό για μηχανές και APIs, αλλά το YAML διαβάζεται και επεξεργάζεται πιο εύκολα από ανθρώπους: χωρίς άγκιστρα, χωρίς υποχρεωτικά εισαγωγικά και με υποστήριξη σχολίων. Τα περισσότερα εργαλεία υποδομής, όπως Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI και Ansible, ρυθμίζονται σε YAML, ενώ τα δεδομένα από τα οποία ξεκινάτε (έξοδος API, kubectl get -o json, Terraform state) είναι συχνά JSON.

Στυλ block ή flow

Το στυλ block βάζει κάθε κλειδί και στοιχείο λίστας στη δική του γραμμή και είναι η καθιερωμένη επιλογή για αρχεία ρυθμίσεων. Το στυλ flow χρησιμοποιεί inline {} και [], όπως το JSON, και κρατά συμπαγείς τις μικρές τελικές δομές. Το «Flow από επίπεδο 2» κρατά τα δύο πρώτα επίπεδα σε στυλ block και γράφει inline οτιδήποτε βαθύτερο, κάτι που ταιριάζει σε μεγάλες λίστες μικρών αντικειμένων όπως θύρες ή μεταβλητές περιβάλλοντος.

Ασφαλή εισαγωγικά

Strings που ένας YAML parser θα μπορούσε να παρερμηνεύσει μπαίνουν αυτόματα σε εισαγωγικά: τιμές όπως 'no', 'on', '1.0', 'null', strings που ξεκινούν με * ή & και strings που περιέχουν : . Επιλέξτε Πάντα μονά ή Πάντα διπλά αν ο οδηγός στυλ σας απαιτεί εισαγωγικά σε κάθε string.

Παγίδες YAML 1.1 και 1.2

Ο μετατροπέας ακολουθεί το YAML 1.2, την τρέχουσα προδιαγραφή. Πολλά παλαιότερα εργαλεία (PyYAML, το Psych της Ruby, ορισμένες εκδόσεις Kubernetes και Ansible) διαβάζουν ακόμη YAML 1.1, όπου οι κανόνες διαφέρουν:

  • Το πρόβλημα της Νορβηγίας: στο YAML 1.1, το country: no σημαίνει false, οπότε ο κωδικός χώρας της Νορβηγίας NO εξαφανίζεται. Το ίδιο ισχύει για τα yes, on, off, y και n. Το YAML 1.2 θεωρεί booleans μόνο τα true και false.
  • Οκταδικοί αριθμοί: το 0755 είναι οκταδικό στο 1.1 αλλά απλός δεκαδικός στο 1.2, που χρησιμοποιεί 0o755. Βάλτε τα δικαιώματα αρχείων σε εισαγωγικά για σιγουριά.
  • Εξηκονταδικοί αριθμοί: στο 1.1, το 22:30 μπορεί να αναλυθεί ως ο αριθμός 1350. Βάλτε σε εισαγωγικά ώρες και αντιστοιχίσεις θυρών όπως "8080:80".

Η κατεύθυνση JSON → YAML βάζει αυτόματα σε εισαγωγικά τα αμφίσημα strings ('no', 'on', 'y'), ώστε το YAML που παράγει να διαβάζεται το ίδιο και στις δύο εκδόσεις.

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

Είναι η μετατροπή χωρίς απώλειες;
Ναι. Κάθε έγγραφο JSON είναι έγκυρο YAML 1.2 και το YAML που παράγεται αναλύεται ξανά σε ακριβώς τα ίδια δεδομένα. Μπορείτε να το ελέγξετε πατώντας Εναλλαγή.
Γιατί κάποια strings έχουν εισαγωγικά και άλλα όχι;
Με το Μόνο όταν χρειάζεται, τα εισαγωγικά προστίθενται μόνο όπου μια τιμή χωρίς εισαγωγικά θα άλλαζε σημασία, για παράδειγμα 'yes', '123' ή strings με ειδικούς χαρακτήρες. Όλα τα υπόλοιπα μένουν απλά για καλύτερη αναγνωσιμότητα.
Μπορώ να προσθέσω σχόλια στην έξοδο;
Το JSON δεν έχει σχόλια, άρα δεν υπάρχουν σχόλια για μετατροπή, αλλά μπορείτε να προσθέσετε # comments στο YAML αφού το αντιγράψετε.
Αλλάζει η σειρά των κλειδιών;
Όχι. Τα κλειδιά διατηρούν τη σειρά τους από το JSON, εκτός αν τσεκάρετε Ταξινόμηση κλειδιών.
Μένουν ιδιωτικά τα δεδομένα μου;
Ναι. Ο μετατροπέας τρέχει στον browser σας και δεν κάνει κανένα αίτημα δικτύου με την είσοδό σας.

Σχετικά εργαλεία