UltKit
Εικόνα11
PDF13
Έγγραφα και δεδομένα7
Βίντεο6
Ήχος4
Περισσότερα εργαλεία22

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

Μετατρέψτε αρχεία ρυθμίσεων YAML, προδιαγραφές OpenAPI και αρχεία CI σε JSON που διαβάζει κάθε parser, API ή επικυρωτής σχήματος. Ανεβάστε αρχεία .yaml ή .yml και κατεβάστε JSON με εσοχές.

Μετατροπέας δεδομένων

ή σύρετε Αρχεία CSV, TSV, TXT … εδώ ·

Έως 95 MB ανά αρχείο· Έως 20 αρχεία· Διαγραφή μετά από 30 λεπτά

Έξοδος

Τα αρχεία επεξεργάζονται στους διακομιστές μας και διαγράφονται μετά από 30 λεπτά.

Πώς να χρησιμοποιήσετε αυτό το εργαλείο

  1. 1

    Ανεβάστε αρχεία YAML

    Προσθέστε αρχεία .yaml ή .yml, έως 20 ταυτόχρονα και έως 95 MB το καθένα. Τα αρχικά ονόματα διατηρούνται· τα αρχεία JSON παίρνουν το ίδιο όνομα με νέα επέκταση.

  2. 2

    Επιλέξτε μορφή με εσοχές ή συμπαγή

    Η επιλογή Ευανάγνωστη μορφοποίηση είναι ενεργή και εισάγει εσοχές στο JSON για ευκολότερη ανάγνωση και έλεγχο κώδικα. Απενεργοποιήστε την στις Σύνθετες ρυθμίσεις για αρχείο σε μία γραμμή, έτοιμο για επικόλληση στο σώμα ενός αιτήματος.

  3. 3

    Μετατρέψτε και χρησιμοποιήστε

    Πατήστε Μετατροπή σε JSON, κατεβάστε το αρχείο και δώστε το στο API, στον validator ή στο script που το χρειαζόταν.

Γιατί οι προγραμματιστές μετατρέπουν YAML σε JSON

Το YAML γράφεται για ανθρώπους: εσοχές αντί για άγκιστρα, σχόλια, χωρίς εισαγωγικά στις περισσότερες συμβολοσειρές. Γι' αυτό είναι η μορφή των manifests του Kubernetes, των workflows του GitHub Actions, των αρχείων Docker Compose και των προδιαγραφών OpenAPI που οι ομάδες επεξεργάζονται με το χέρι. Το JSON γράφεται για προγράμματα. Κάθε γλώσσα έχει αναλυτή JSON στην τυπική της βιβλιοθήκη, τα προγράμματα περιήγησης το διαβάζουν εγγενώς και τα περισσότερα HTTP API δεν δέχονται τίποτα άλλο.

Έτσι η μετατροπή γίνεται στο όριο των συστημάτων. Ένας μηχανικός πλατφόρμας περνά ένα manifest μέσα από το jq, που διαβάζει μόνο JSON. Ένας προγραμματιστής backend στέλνει μια προδιαγραφή OpenAPI σε γεννήτρια κώδικα που θέλει JSON. Ένας tester φορτώνει δεδομένα δοκιμών γραμμένα σε YAML σε ένα σύνολο δοκιμών JavaScript. Σε κάθε περίπτωση το YAML παραμένει η πηγή αλήθειας και το JSON είναι προϊόν του build. Για ολόκληρο φάκελο με feeds ή εξαγωγές αντί για αρχεία ρυθμίσεων, το XML σε JSON χειρίζεται με τον ίδιο τρόπο την παλαιότερη μορφή σήμανσης.

Πώς εξελίχθηκαν μαζί το YAML και το JSON

Η πρώτη πρόταση του YAML από τον Clark Evans
2001
Το YAML 1.2 έκανε το JSON υποσύνολο του YAML
2009
RFC 8259, το τρέχον πρότυπο JSON
2017
Δημοσίευση της αναθεώρησης YAML 1.2.2
2021

Τι γίνεται στο JSON με τις δυνατότητες που υπάρχουν μόνο στο YAML

Ένα anchor (&defaults) και τα aliases του (*defaults) επιτρέπουν στο YAML να επαναχρησιμοποιεί ένα μπλοκ. Το JSON δεν έχει αναφορές, οπότε κάθε alias αντικαθίσταται από πλήρες αντίγραφο του μπλοκ.

  • Το JSON μπορεί να είναι αισθητά μεγαλύτερο από το YAML
  • Τα merge keys (<<: *defaults) αναπτύσσονται με τον ίδιο τρόπο
Μια μικρή ρύθμιση YAML ως JSON με ευανάγνωστη μορφοποίηση
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Βασικά στοιχεία των μορφών YAML και JSON

YAML

YAML

Το YAML («YAML Ain't Markup Language») είναι μια φιλική προς τον άνθρωπο μορφή δεδομένων, που κυκλοφόρησε πρώτη φορά το 2001. Χρησιμοποιεί εσοχές αντί για αγκύλες, υποστηρίζει σχόλια και είναι υπερσύνολο του JSON. Χρησιμοποιείται ευρέως για ρυθμίσεις στα Docker Compose, Kubernetes, GitHub Actions και σε πολλές εφαρμογές. Επειδή βασίζεται στα κενά, χαλάει εύκολα με ένα μόνο λάθος τοποθετημένο κενό, και ορισμένες τιμές, όπως το «no» ή οι ημερομηνίες, μπορεί να ερμηνευτούν απρόσμενα.

Συμπίεση
–
Διαφάνεια
–
Κινούμενη εικόνα
–
Έτος εισαγωγής
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Μετατροπέας YAML

JSON

JavaScript Object Notation

Το JSON είναι μια ελαφριά μορφή κειμένου για δομημένα δεδομένα, που διαδόθηκε από τον Douglas Crockford στις αρχές της δεκαετίας του 2000 και τυποποιήθηκε ως RFC 8259 και ECMA-404. Αναπαριστά αντικείμενα, πίνακες, συμβολοσειρές, αριθμούς, λογικές τιμές και null με απλή, ευανάγνωστη σύνταξη. Είναι η προεπιλεγμένη μορφή για web APIs, αρχεία ρυθμίσεων και ανταλλαγή δεδομένων μεταξύ εφαρμογών σε σχεδόν κάθε γλώσσα προγραμματισμού. Δεν έχει ενσωματωμένα σχόλια, ημερομηνίες ή σχήματα, και τα μεγάλα εμφωλευμένα αρχεία διαβάζονται δύσκολα χωρίς πρόγραμμα προβολής.

Συμπίεση
–
Διαφάνεια
–
Κινούμενη εικόνα
–
Έτος εισαγωγής
2001 · Douglas Crockford
Μετατροπέας JSON

Μετατρέπουμε YAML σε JSON όταν μια ρύθμιση ή προδιαγραφή γραμμένη για ανθρώπους πρέπει να τροφοδοτήσει μηχανή: ένα αίτημα API, έναν validator σχήματος ή ένα εργαλείο χωρίς αναλυτή YAML.

Συχνές ερωτήσεις για τη μετατροπή YAML σε JSON

Γιατί να μετατρέψω YAML σε JSON, αφού περιέχουν τα ίδια δεδομένα;

Επειδή πολλά εργαλεία διαβάζουν μόνο ένα από τα δύο. Οι αναγνώστες JSON περιλαμβάνονται σε κάθε γλώσσα προγραμματισμού και σε κάθε πρόγραμμα περιήγησης, ενώ το YAML απαιτεί επιπλέον βιβλιοθήκη. Τα σώματα αιτημάτων σε REST API, οι validators JSON Schema, το jq και αρχεία όπως το package.json ή το manifest.json μιας επέκτασης προγράμματος περιήγησης περιμένουν όλα JSON.

Τι γίνεται με τα σχόλια του αρχείου YAML;

Αφαιρούνται. Το RFC 8259 δεν προβλέπει σύνταξη σχολίων στο JSON, οπότε οι γραμμές που ξεκινούν με # δεν έχουν πού να μπουν. Κρατήστε το αρχείο YAML ως τεκμηριωμένη πηγή και αντιμετωπίστε το JSON ως παραγόμενο αντίγραφο που μπορείτε να ξαναδημιουργήσετε οποτεδήποτε.

Γιατί το NO ή το off έγινε false;

Οι αναλυτές που ακολουθούν το YAML 1.1 διαβάζουν τα yes, no, on και off ως boolean, οπότε ένας κωδικός χώρας όπως το NO για τη Νορβηγία μπορεί να γίνει false. Το YAML 1.2 περιορίζει τα boolean σε true και false, αλλά δεν το ακολουθούν όλα τα εργαλεία. Βάλτε τέτοιες τιμές σε εισαγωγικά στο YAML, όπως "NO", και θα παραμείνουν συμβολοσειρές στο JSON.

Μπορώ να μετατρέψω πρότυπο CloudFormation γραμμένο σε YAML;

Το AWS CloudFormation δέχεται και τις δύο μορφές, αλλά οι σύντομες ετικέτες όπως !Ref και !GetAtt υπάρχουν μόνο στο YAML. Τα πρότυπα JSON τις γράφουν ως πλήρεις συναρτήσεις, {"Ref": "MyBucket"} ή {"Fn::GetAtt": [...]}. Γράψτε τις σύντομες ετικέτες στη μακριά μορφή πριν από τη μετατροπή, ώστε το πρότυπο JSON να παραμείνει έγκυρο.

Πώς κάνω την αντίστροφη μετατροπή;

Χρησιμοποιήστε το JSON σε YAML. Είναι η συνήθης κατεύθυνση όταν μια απάντηση API ή ένα παραγόμενο αρχείο πρέπει να γίνει ευανάγνωστο αρχείο ρυθμίσεων σε ένα αποθετήριο.