Μετατροπέας MessagePack σε JSONL
Μετατρέψτε δεδομένα από MessagePack σε JSONL αμέσως καθώς πληκτρολογείτε, απευθείας στο πρόγραμμα περιήγησης.
Είσοδος
Έξοδος
Readme
Τι είναι αυτές οι μορφές δεδομένων;
Τα προγράμματα αποθηκεύουν και ανταλλάσσουν δομημένα δεδομένα, όπως ρυθμίσεις, εγγραφές και λίστες, σε μορφές κειμένου που η καθεμία τα αναπαριστά με τον δικό της τρόπο. Ένας μετατροπέας είναι χρήσιμος όταν ένα πρόγραμμα σάς δίνει δεδομένα σε μορφή που δεν μπορεί να διαβάσει κάποιο άλλο ή όταν μια μορφή είναι ευκολότερη στην ανάγνωση ή την επεξεργασία για την εκάστοτε εργασία.
| Μορφή | Πώς αναπαριστά τα δεδομένα | Πού τη συναντάτε |
|---|---|---|
| JSON | Αντικείμενα μέσα σε άγκιστρα, λίστες μέσα σε αγκύλες, κείμενο μέσα σε διπλά εισαγωγικά | Web API και ρυθμίσεις εφαρμογών |
| YAML | Γραμμές με εσοχή της μορφής key: value, στοιχεία λίστας που αρχίζουν με - |
Docker Compose, Kubernetes και αρχεία αγωγών CI |
| XML | Στοιχεία μέσα σε ετικέτες, που μπορούν να έχουν γνωρίσματα | Έγγραφα, ροές RSS και υπηρεσίες ιστού SOAP |
| TOML | Γραμμές key = value κάτω από επικεφαλίδες [table] |
Αρχεία ρυθμίσεων όπως τα Cargo.toml και pyproject.toml |
| TOON | Γραμμές με εσοχή, με λίστες εγγραφών σε γραμμές κάτω από τα πεδία τους | Δομημένα δεδομένα που αποστέλλονται σε γλωσσικά μοντέλα AI |
| CSV | Μια γραμμή επικεφαλίδων και έπειτα μία γραμμή ανά εγγραφή, με τις τιμές χωρισμένες με κόμματα | Υπολογιστικά φύλλα και εξαγωγές βάσεων δεδομένων |
| TSV | Όπως το CSV, αλλά με στηλοθέτες ανάμεσα στις τιμές | Κελιά που αντιγράφονται από υπολογιστικό φύλλο |
| MessagePack | Δυαδικά δεδομένα, που εδώ εμφανίζονται ως δεκαεξαδικά byte | Συμπαγή μηνύματα μεταξύ προγραμμάτων |
| JSON5 | JSON που επιτρέπει επίσης σχόλια, μονά εισαγωγικά και κλειδιά χωρίς εισαγωγικά | Αρχεία ρυθμίσεων που γράφονται με το χέρι |
| JSONL | Μία τιμή JSON ανά γραμμή, που αποκαλείται επίσης JSON Lines ή NDJSON | Αρχεία καταγραφής και σύνολα δεδομένων |
| INI | Γραμμές key = value κάτω από επικεφαλίδες [section] |
Αρχεία ρυθμίσεων προγραμμάτων, όπως το php.ini |
| Properties | Γραμμές key = value με κλειδιά που περιέχουν τελείες |
Εφαρμογές Java, όπως τα αρχεία application.properties του Spring Boot |
Περιγραφή εργαλείου
Αυτό το εργαλείο μετατρέπει δεδομένα μεταξύ αυτών των 12 μορφών: JSON, YAML, XML, TOML, TOON, CSV, TSV, MessagePack, JSON5, JSONL, INI και Java properties. Όλοι οι μετατροπείς μορφών δεδομένων εδώ λειτουργούν με τον ίδιο τρόπο, από τον γενικό Μετατροπέα Μορφών Δεδομένων έως εκείνους που αφορούν ένα μόνο ζεύγος, όπως JSON σε YAML, CSV σε JSON ή XML σε JSON: ξεκινούν με τις μορφές που αναφέρονται στο όνομά τους, ενώ τα μενού Πηγή και Στόχος επιτρέπουν την επιλογή οποιασδήποτε άλλης. Επικολλήστε ή πληκτρολογήστε τα δεδομένα σας και το αποτέλεσμα εμφανίζεται καθώς πληκτρολογείτε, σε ένα πρόγραμμα επεξεργασίας κώδικα με επισήμανση σύνταξης, έτοιμο για αντιγραφή. Το κουμπί εναλλαγής αντιστρέφει τη μετατροπή και ορίζει το αποτέλεσμα ως νέα είσοδο.
Όταν η είσοδος δεν είναι έγκυρη στη μορφή προέλευσης, το μήνυμα σφάλματος αναφέρει τι δεν πάει καλά, συνήθως μαζί με τη γραμμή και τη στήλη όπου βρίσκεται το πρόβλημα.
Τα δεδομένα σας μετατρέπονται στο πρόγραμμα περιήγησής σας και δεν μεταφορτώνονται ποτέ.
Παράδειγμα
Αυτό το JSON:
{
"users": [
{ "id": 1, "name": "Ann", "admin": true },
{ "id": 2, "name": "Bo", "admin": false }
]
}γίνεται αυτό το YAML:
users:
- id: 1
name: Ann
admin: true
- id: 2
name: Bo
admin: falseαυτό το CSV, με μία γραμμή ανά χρήστη:
id,name,admin
1,Ann,true
2,Bo,falseκαι αυτό το TOON:
users[2]{id,name,admin}:
1,Ann,true
2,Bo,falseΠώς αντιστοιχίζονται οι μορφές μεταξύ τους
Δεν υποστηρίζουν όλες οι μορφές τα ίδια είδη δεδομένων, επομένως ορισμένες μετατροπές ακολουθούν τους εξής κανόνες:
- CSV και TSV αποθηκεύουν έναν πίνακα. Η πρώτη γραμμή ορίζει τις στήλες και κάθε επόμενη γραμμή γίνεται αντικείμενο. Τα ένθετα αντικείμενα γίνονται στήλες με ονόματα που προκύπτουν από τη διαδρομή τους, ενώ οι λίστες γίνονται κείμενο JSON στο αντίστοιχο κελί. Έτσι, το
{"name": "Ann", "address": {"city": "Oslo"}, "tags": ["a", "b"]}γίνεται οι στήλεςname,address.cityκαιtags. Κατά την αντίστροφη μετατροπή, αυτές οι στήλες γίνονται ξανά ένθετα αντικείμενα και λίστες. Όταν τα δεδομένα είναι ένα αντικείμενο που περιέχει μία λίστα, όπως το{"users": [...]}, οι γραμμές αντιστοιχούν στα στοιχεία αυτής της λίστας, ενώ μια λίστα λιστών γίνεται γραμμές χωρίς επικεφαλίδα. - Τιμές κειμένου: Τα CSV, TSV, XML, INI και properties αποθηκεύουν μόνο κείμενο, οπότε οι μετατροπείς μετατρέπουν τα
trueκαιfalseσε τιμές αληθείας και τους αριθμούς που γράφονται απλά, όπως42ή3.5, σε αριθμούς. Τιμές όπως007,1.50ή1e3παραμένουν κείμενο, ώστε οι ταχυδρομικοί κώδικες και οι αριθμοί εκδόσεων να διατηρούν ακριβώς την αρχική μορφή τους. - Τα γνωρίσματα XML γίνονται κλειδιά που αρχίζουν με
@, ενώ το κείμενο ενός στοιχείου που έχει γνωρίσματα γίνεται#text: το<price currency="USD">44.95</price>γίνεται{"@currency": "USD", "#text": 44.95}. Τα επαναλαμβανόμενα στοιχεία γίνονται λίστα. Κατά τη μετατροπή σε XML, τα κλειδιά που αρχίζουν με@γίνονται ξανά γνωρίσματα. Ένα αντικείμενο με ένα μόνο κλειδί, του οποίου η τιμή δεν είναι λίστα, γίνεται το στοιχείο ρίζας. Τα υπόλοιπα δεδομένα τοποθετούνται μέσα σε ένα στοιχείο<root>, με κάθε στοιχείο μιας λίστας στην κορυφή να τοποθετείται μέσα σε στοιχείο<item>. Οι χαρακτήρες που δεν επιτρέπονται στα ονόματα XML, όπως τα κενά, αντικαθίστανται με_. - Τα TOML, INI και properties μπορούν να αποθηκεύσουν μόνο επώνυμες τιμές στο ανώτατο επίπεδο, επομένως τα δεδομένα που είναι λίστα γράφονται κάτω από το όνομα
itemsκαι μια μεμονωμένη τιμή κάτω από τοvalue. Το TOML δεν έχει τιμή null, επομένως οι τιμές null παραλείπονται. - Το INI αναπαριστά τα ένθετα αντικείμενα ως ενότητες, όπως η
[server.ssl], τις λίστες τιμών ως γραμμέςkey[] = valueκαι τις λίστες αντικειμένων ως ενότητες με όνομα που βασίζεται στη θέση τους, όπως η[users.0]. - Τα κλειδιά properties συνενώνουν τα ένθετα ονόματα με τελείες και αριθμούν τα στοιχεία λίστας μέσα σε αγκύλες, όπως το
app.hosts[0], με τον τρόπο που τα γράφει το Spring Boot. Κατά τη μετατροπή σε YAML ή JSON, αυτά τα κλειδιά γίνονται ένθετα αντικείμενα και λίστες, οπότε ένα αρχείοapplication.propertiesμετατρέπεται στη διάταξη ενός αρχείουapplication.yml. Οι χαρακτήρες εκτός του Latin-1 γράφονται ως ακολουθίες διαφυγής\u. - Τα αποτελέσματα YAML περικλείουν σε εισαγωγικά το κείμενο που οι αναγνώστες YAML 1.1 θα ερμήνευαν ως κάτι άλλο, όπως τα
on,yesή μια ημερομηνία, ώστε οι αναγνώστες YAML 1.1 και YAML 1.2 να λαμβάνουν τα ίδια δεδομένα. Ένα αρχείο YAML με πολλά έγγραφα που χωρίζονται με---γίνεται λίστα αυτών των εγγράφων και τα κλειδιά συγχώνευσης<<συμπληρώνονται. - Το MessagePack είναι δυαδική μορφή, επομένως τα εργαλεία το διαβάζουν και το γράφουν ως δεκαεξαδικά byte: το
{"a": 1}είναι81 A1 61 01. Η είσοδος μπορεί να περιέχει κενά, κόμματα και0xπριν από κάθε byte. Πολλά διαδοχικά μηνύματα γίνονται λίστα. - Στα αποτελέσματα JSONL, κάθε στοιχείο της λίστας βρίσκεται στη δική του γραμμή.
- Οι ακέραιοι αριθμοί που είναι υπερβολικά μεγάλοι για τους αριθμούς JavaScript, όπως τα αναγνωριστικά 64 bit, διατηρούν όλα τα ψηφία τους.
- Οι ημερομηνίες και ώρες TOML, καθώς και οι χρονικές σημάνσεις MessagePack, γίνονται κείμενο, όπως το
1979-05-27T07:32:00Z.
Συμβουλές
- Για να μετατρέψετε κελιά από υπολογιστικό φύλλο, αντιγράψτε τα και επικολλήστε τα ως TSV: οι εφαρμογές υπολογιστικών φύλλων αντιγράφουν τα κελιά ως κείμενο με διαχωρισμό στηλοθετών.
- Τα CSV και TSV είναι κατάλληλα για δεδομένα που αποτελούνται από λίστα παρόμοιων εγγραφών. Τα δεδομένα με βαθιά ένθεση διαβάζονται ευκολότερα ως YAML, TOML ή TOON.
- Τα σχόλια σε αρχεία YAML, XML, TOML, JSON5, INI και properties δεν διατηρούνται, καθώς οι μετατροπείς μεταφέρουν μόνο τα δεδομένα.