JSON σε Μετατροπέας YAML
Μετατρέψτε τη δομή JSON σε καθαρή μορφή YAML. Ιδανικό για μανιφέστα Kubernetes και διαμορφώσεις cloud.
Μετατρέψτε τη δομή JSON σε καθαρή μορφή YAML. Ιδανικό για μανιφέστα Kubernetes και διαμορφώσεις cloud.
Η μετάβαση από το JSON στο YAML έχει ως επί το πλείστον να κάνει τα δεδομένα πιο ευανάγνωστα για τον άνθρωπο. Και οι δύο μορφές περιγράφουν τα ίδια είδη δομών — αντικείμενα/χάρτες, πίνακες/ακολουθίες, βαθμωτές βαθμίδες — αλλά η σύνταξη που βασίζεται σε εσοχές, η προαιρετική παράθεση και η υποστήριξη σχολίων του YAML διευκολύνουν τη σάρωση και την επεξεργασία με το χέρι. Τα αρχεία διαμόρφωσης είναι η κανονική περίπτωση χρήσης: τα μανιφέστα Kubernetes, οι ροές εργασίας CI, τα βιβλία αναπαραγωγής Ansible και δεκάδες άλλα εργαλεία επέλεξαν το YAML ειδικά επειδή οι κύριοι συντάκτες τους είναι άνθρωποι.
Αυτός ο μετατροπέας χρησιμοποιεί js-yaml για τη σειριοποίηση ενός αναλυμένου αντικειμένου JSON σε YAML. Το αποτέλεσμα διατηρεί τη δομή των δεδομένων ακριβώς κατά την εφαρμογή των συμβάσεων YAML: εσοχή για ένθεση, λίστες για πίνακες, ζεύγη κλειδιού-τιμής για ιδιότητες αντικειμένων. Η αυστηρή διπλή παράθεση του JSON είναι χαλαρή. Μόνο συμβολοσειρές που περιέχουν ειδικούς χαρακτήρες ή που μοιάζουν με άλλους τύπους αναφέρονται στην έξοδο.
Η μετατροπή διατηρεί πληροφορίες, εκτός από τις περιπτώσεις όπου το YAML προσθέτει εκφραστικότητα που δεν είχε η JSON. Δεν είναι δυνατή η ανακατασκευή σχολίων (το JSON δεν είχε κανένα). Οι αναφορές αγκύρωσης και ψευδωνύμων θα μπορούσαν ενδεχομένως να συμπιέσουν επαναλαμβανόμενες δομές, αλλά δεν δημιουργούνται αυτόματα. η έξοδος επεκτείνει όλες τις αναφορές inline.
Το YAML είναι δραματικά πιο ευανάγνωστο από το JSON για τη διαμόρφωση επεξεργασίας από ανθρώπους. Η εσοχή αντικαθιστά την ένθεση με άγκιστρο, τα εισαγωγικά είναι προαιρετικά για απλές συμβολοσειρές και τα σχόλια μπορούν να τεκμηριώσουν μη προφανείς ρυθμίσεις. Για αρχεία που διατηρούν οι άνθρωποι — διαμόρφωση εφαρμογής, υποδομή ως κώδικας, δημιουργία αγωγών — το YAML είναι σχεδόν πάντα η σωστή μορφή προορισμού.
Τα σύγχρονα εργαλεία υποδομής ευνοούν σε μεγάλο βαθμό το YAML. Kubernetes, Helm charts, Ansible, GitHub Actions, GitLab CI, Docker Compose και πολλά άλλα εργαλεία είτε προτιμούν είτε απαιτούν YAML. Η μετατροπή εξαγωγών JSON από ένα σύστημα σε διαμόρφωση YAML για ένα άλλο είναι ένα συνηθισμένο βήμα ενοποίησης.
Επικολλήστε JSON, αποκτήστε YAML.
Η συνάρτηση dump του js-yaml περπατά στο δέντρο αντικειμένων JavaScript και εκπέμπει YAML χρησιμοποιώντας διαμορφώσιμη μορφοποίηση. Το βάθος εσοχής, το πλάτος γραμμής, το όριο του στυλ ροής και ο χειρισμός της προσφοράς είναι όλες παράμετροι. Οι προεπιλεγμένες ρυθμίσεις παράγουν YAML σε στυλ μπλοκ με εσοχή 2 διαστημάτων, την πιο κοινή σύμβαση.
Η παράθεση συμβολοσειρών ακολουθεί τους κανόνες του YAML: οι συμβολοσειρές που μοιάζουν με άλλους τύπους (αριθμοί, booleans, null, ημερομηνίες) αναφέρονται για να εξαναγκάσουν την ερμηνεία συμβολοσειρών. Οι συμβολοσειρές που περιέχουν ειδικούς χαρακτήρες (πάνω τελείες, κατακερματισμοί, προπορευόμενες παύλες) αναφέρονται. Οι απλές αλφαβητικές συμβολοσειρές παραμένουν χωρίς εισαγωγικά.
Η έξοδος είναι συμβατή με το YAML 1.2 και αναλύεται καθαρά με js-yaml, PyYAML και άλλες σημαντικές βιβλιοθήκες YAML. Οι ανεπαρκείς διαδρομές μετ' επιστροφής (JSON → YAML → JSON) διατηρούν τα δεδομένα, αν και η αναπαράσταση YAML επιλέγει κανονική μορφοποίηση που μπορεί να διαφέρει από μια χειρόγραφη ισοδύναμη.