YAML να Μετατροπέας JSON
Γρήγορη και ασφαλής μετατροπή YAML σε JSON. Ιδανικό για αρχεία διαμόρφωσης και ανάλυση δεδομένων.
Γρήγορη και ασφαλής μετατροπή YAML σε JSON. Ιδανικό για αρχεία διαμόρφωσης και ανάλυση δεδομένων.
Το YAML και το JSON είναι μορφές στενά συνδεδεμένες — το JSON είναι τεχνικά ένα αυστηρό υποσύνολο του YAML 1.2 — και η μετατροπή μεταξύ τους είναι συνήθως απλή. Το YAML προσθέτει χαρακτηριστικά φιλικά προς τον άνθρωπο που στερούνται από το JSON: σχόλια, συμβολοσειρές πολλών γραμμών χωρίς διαφυγή, αναφορές αγκύρωσης και ψευδωνύμων, πιο ευέλικτη παραπομπή και δομή βασισμένη σε εσοχές που μοιάζει με φυσική διάταξη εγγράφων. Αυτό καθιστά το YAML τη δημοφιλή επιλογή για αρχεία διαμόρφωσης (εκδηλώσεις Kubernetes, ροές εργασιών GitHub Actions, Docker Compose) ενώ το JSON κυριαρχεί στα ωφέλιμα φορτία API.
Η μετατροπή του YAML σε JSON σημαίνει συνήθως εγκατάλειψη των φιλικών προς τον άνθρωπο πρόσθετων στοιχείων του YAML με αντάλλαγμα μια μορφή που οι μηχανές αναλύουν πιο εύκολα και αυτή είναι η γλώσσα των API HTTP. Τα σχόλια απορρίπτονται (το JSON δεν έχει κανένα). Οι αναφορές αγκύρωσης επιλύονται στις τιμές αναφοράς τους. Οι συμβολοσειρές πολλών γραμμών συμπτύσσονται σε τυπικές συμβολοσειρές JSON με ενσωματωμένες νέες γραμμές.
Αυτός ο μετατροπέας αναλύει το YAML χρησιμοποιώντας το js-yaml, την πιο ευρέως χρησιμοποιούμενη βιβλιοθήκη YAML σε JavaScript. Η έξοδος δημιουργείται χρησιμοποιώντας το JSON.stringify με προαιρετική εσοχή. Η μετατροπή χειρίζεται όλη την τυπική σύνταξη YAML 1.2, συμπεριλαμβανομένων του στυλ ροής, του στυλ μπλοκ, των βαθμωτών, των ακολουθιών, των αντιστοιχίσεων, των αγκυρώσεων, των ψευδωνύμων και των τυπικών τύπων ετικετών.
Τα περισσότερα API και πολλά περιβάλλοντα προγραμματισμού αναμένουν JSON. Τα αρχεία διαμόρφωσης που είναι γραμμένα σε YAML πρέπει να μετατραπούν σε JSON κατά την ενσωμάτωση με κώδικα ή υπηρεσίες που δέχονται μόνο JSON. Τα εργαλεία για JSON είναι επίσης πιο άφθονα: τα jq, JSON Path, JSON Schema και ένα ευρύ οικοσύστημα επικυρωτών και μετασχηματιστών προϋποθέτουν είσοδο JSON.
Το JSON είναι επίσης σαφές με τρόπους που δεν είναι το YAML. Η ευελιξία του YAML δημιουργεί εκπλήξεις ανάλυσης — συμβολοσειρές όπως η ανάλυση «όχι» ως boolean false στο YAML 1.1, οι συμβολοσειρές έκδοσης που αναλύονται ως πλωτήρες, σφάλματα εσοχής που προκαλούν σιωπηρές δομικές αλλαγές. Η μετατροπή σε JSON παγώνει τα δεδομένα σε μια λιγότερο διφορούμενη μορφή.
Επικολλήστε το YAML, λάβετε JSON.
Το js-yaml υλοποιεί το YAML 1.2 με προαιρετική υποστήριξη για ιδιορρυθμίες YAML 1.1 (το ζήτημα 'no'-as-false, οκταδικοί αριθμοί χωρίς πρόθεμα 0o). Ο αναλυτής παράγει ένα δέντρο αντικειμένων JavaScript χρησιμοποιώντας εγγενείς τύπους: αριθμούς, συμβολοσειρές, booleans, null, πίνακες και απλά αντικείμενα.
Το JSON.stringify σειριοποιεί το δέντρο αντικειμένων σε JSON. Η προαιρετική εσοχή παράγει όμορφα τυπωμένα αποτελέσματα. Χωρίς αυτό το αποτέλεσμα είναι συμπαγές JSON μονής γραμμής. Οι ειδικές τιμές (NaN, Infinity, undefined) δεν είναι έγκυρες JSON. ο μετατροπέας τα εξαναγκάζει να μηδενιστούν όπου υπάρχουν.
Περιπτώσεις άκρων: Οι χρονικές σημάνσεις YAML γίνονται συμβολοσειρές ISO-8601 σε JSON. Τα δυαδικά δεδομένα YAML (κωδικοποιημένα με βάση 64) γίνονται συμβολοσειρά. Οι αγκυρώσεις και τα ψευδώνυμα επιλύονται σε διπλότυπες τιμές στο JSON, καθώς το JSON δεν έχει σύνταξη αναφοράς.