Μετατροπέας CSV σε JSON - Δωρεάν Online Εργαλείο Μετατροπής Αρχείων
Μετατρέψτε CSV σε JSON και JSON σε CSV άμεσα στον περιηγητή σας. Ασφαλής, γρήγορη μετατροπή δεδομένων με προεπισκόπηση και λήψη. Καμία μεταφόρτωση δεν απαιτείται.
Μετατροπέας Αρχείων CSV/JSON
Μετατρέψτε εύκολα μεταξύ μορφών CSV και JSON. Ανεβάστε το αρχείο σας, προεπισκοπήστε τα δεδομένα και κατεβάστε το μετατρεπόμενο αποτέλεσμα.
Μετατροπέας CSV σε JSON
Μετατροπέας JSON σε CSV
Τεκμηρίωση
Τι είναι ένας μετατροπέας CSV σε JSON;
Ένας μετατροπέας CSV σε JSON είναι ένα εργαλείο που αλλάζει δεδομένα από τη μορφή CSV (τιμές διαχωρισμένες με κόμματα) στη μορφή JSON (Σημειογραφία αντικειμένων JavaScript) ή αντίστροφα. Ο μετατροπέας εκτελείται εξ ολοκλήρου μέσα στο πρόγραμμα περιήγησης. Δεν στέλνει ποτέ το μεταφορτωμένο αρχείο σε διακομιστή, επομένως τα δεδομένα παραμένουν στη συσκευή του χρήστη.
Το CSV είναι μια μορφή απλού κειμένου που χρησιμοποιείται για την αποθήκευση πινάκων, όπως υπολογιστικά φύλλα που έχουν εξαχθεί από το Excel ή το Google Sheets. Το JSON είναι μια μορφή κειμένου που βασίζεται σε ζεύγη κλειδιού-τιμής και χρησιμοποιείται ευρέως για τη μεταφορά δεδομένων μεταξύ διαδικτυακών εφαρμογών και API. Επειδή οι δύο μορφές οργανώνουν τα δεδομένα διαφορετικά, η μετατροπή από τη μία στην άλλη απαιτεί ένα καθορισμένο σύνολο κανόνων, το οποίο περιγράφεται παρακάτω.
Πώς γίνεται η μετατροπή CSV σε JSON
- Κάντε κλικ στην επιλογή «Upload CSV File» και επιλέξτε ένα αρχείο
.csvαπό τη συσκευή. - Το εργαλείο εμφανίζει μια προεπισκόπηση του ακατέργαστου περιεχομένου του αρχείου.
- Κάντε κλικ στην επιλογή «Convert to JSON». Το εργαλείο διαβάζει την πρώτη γραμμή ως κεφαλίδες στηλών και μετατρέπει κάθε άλλη γραμμή σε ένα αντικείμενο JSON.
- Το αποτέλεσμα εμφανίζεται στην προεπισκόπηση εξόδου, μορφοποιημένο με εσοχές.
- Κάντε κλικ στην επιλογή «Download JSON» για να το αποθηκεύσετε ως αρχείο
.jsonή στην επιλογή «Copy JSON» για να αντιγράψετε το κείμενο.
Πώς γίνεται η μετατροπή JSON σε CSV
- Κάντε κλικ στην επιλογή «Upload JSON File» και επιλέξτε ένα αρχείο
.json. Το αρχείο πρέπει να περιέχει έναν πίνακα JSON από αντικείμενα, για παράδειγμα[{"Name":"Ann"},{"Name":"Bo"}]. - Το εργαλείο εμφανίζει μια προεπισκόπηση του ακατέργαστου κειμένου JSON.
- Κάντε κλικ στην επιλογή «Convert to CSV». Το εργαλείο συλλέγει κάθε κλειδί που χρησιμοποιείται σε όλα τα αντικείμενα και μετατρέπει το καθένα σε στήλη.
- Το αποτέλεσμα εμφανίζεται στην προεπισκόπηση εξόδου ως κείμενο CSV.
- Κάντε κλικ στην επιλογή «Download CSV» για να το αποθηκεύσετε ως αρχείο
.csvή στην επιλογή «Copy CSV» για να αντιγράψετε το κείμενο.
Δεν επιβάλλονται όρια μεταφόρτωσης από διακομιστή, επειδή κανένα από τα δεδομένα δεν εγκαταλείπει το πρόγραμμα περιήγησης. Ωστόσο, ένα πολύ μεγάλο αρχείο μπορεί να επιβραδύνει την καρτέλα του προγράμματος περιήγησης, καθώς ολόκληρο το αρχείο διατηρείται στη μνήμη κατά τη μετατροπή.
Κανόνες μετατροπής CSV σε JSON
Ο μετατροπέας διαβάζει την πρώτη γραμμή του αρχείου ως ονόματα στηλών. Κάθε επόμενη γραμμή γίνεται ένα αντικείμενο JSON, με τα ονόματα των στηλών ως κλειδιά. Σε μια γραμμή με περισσότερες τιμές από όσες υπάρχουν κεφαλίδες, προστίθενται κλειδιά που ονομάζονται από την απόλυτη θέση τους στη γραμμή· έτσι, με 3 κεφαλίδες, η τέταρτη τιμή έχει ως κλειδί το field_4, η πέμπτη το field_5 και ούτω καθεξής, ώστε να μη χάνονται δεδομένα. Σε μια γραμμή με λιγότερες τιμές, τα κλειδιά που λείπουν παίρνουν κενές συμβολοσειρές. Αν δύο κεφαλίδες έχουν το ίδιο όνομα, η δεύτερη μετονομάζεται με επίθημα· έτσι το a, a γίνεται τα κλειδιά a και a_2.
Ο μετατροπέας ακολουθεί τους κανόνες CSV που ορίζονται στο RFC 4180, το τεχνικό πρότυπο για τη μορφή. Ένα κόμμα μέσα σε ένα πεδίο αντιμετωπίζεται ως τιμή μέσα σε αυτό το πεδίο και όχι ως διαχωριστικό στήλης, μόνο αν το πεδίο περικλείεται σε διπλά εισαγωγικά, για παράδειγμα "Smith, John". Μια αλλαγή γραμμής μέσα σε εισαγωγικά διατηρείται ως μέρος της τιμής και δεν αντιμετωπίζεται ως νέα γραμμή. Δύο διπλά εισαγωγικά μέσα σε ένα πεδίο που περικλείεται σε εισαγωγικά αντιπροσωπεύουν έναν κυριολεκτικό χαρακτήρα διπλών εισαγωγικών.
Αναγνωρίζονται μόνο τα κόμματα ως διαχωριστικά στηλών· το εργαλείο δεν εντοπίζει ούτε υποστηρίζει ερωτηματικά, στηλοθέτες ή άλλα διαχωριστικά.
Κάθε τιμή ελέγχεται και μετατρέπεται σε έναν τύπο:
- Μια τιμή γραμμένη ως απλός αριθμός, όπως
42ή-3.5, γίνεται αριθμός JSON. - Το κείμενο
trueήfalse, ανεξάρτητα από το αν χρησιμοποιούνται κεφαλαία ή πεζά γράμματα, γίνεται λογική τιμή JSON. - Οτιδήποτε άλλο παραμένει συμβολοσειρά JSON, συμπεριλαμβανομένων των κενών κελιών, τα οποία γίνονται κενές συμβολοσειρές.
- Ένας αριθμός με αρχικό μηδενικό, όπως
00512, παραμένει συμβολοσειρά, επειδή το αρχικό μηδενικό συχνά έχει σημασία, όπως σε έναν ταχυδρομικό κώδικα ή έναν αριθμό αναγνωριστικού. - Ένας αριθμός γίνεται αποδεκτός μόνο αν η επανεγγραφή του δίνει ακριβώς το ίδιο κείμενο. Μεγάλοι ακέραιοι πάνω από το 9,007,199,254,740,991, τον μεγαλύτερο ακέραιο που ένας αριθμός JavaScript αποθηκεύει με ακρίβεια, συνήθως αποτυγχάνουν σε αυτόν τον έλεγχο και παραμένουν συμβολοσειρές, ώστε να μη χάνονται ψηφία.
- Μια τιμή που το αρχείο έχει ήδη περικλείσει σε εισαγωγικά διατηρείται πάντα ως συμβολοσειρά, ακόμη και αν μοιάζει με αριθμό, επειδή τα εισαγωγικά θεωρούνται ένδειξη του συντάκτη ότι πρόκειται για κείμενο.
Οι κενές γραμμές του αρχείου παραλείπονται και δεν δημιουργούν κενά αντικείμενα.
Κανόνες μετατροπής JSON σε CSV
Ο μετατροπέας εξετάζει κάθε αντικείμενο του πίνακα και συλλέγει το πλήρες σύνολο των κλειδιών που χρησιμοποιούνται σε όλα τα αντικείμενα. Αυτά τα κλειδιά γίνονται οι κεφαλίδες των στηλών CSV, με τη σειρά με την οποία εμφανίζονται για πρώτη φορά. Αν από ένα αντικείμενο λείπει ένα κλειδί που υπάρχει σε άλλο, το αντίστοιχο κελί παραμένει κενό και δεν προκύπτει σφάλμα.
Η μετατροπή JSON σε CSV δεν μετατρέπει τα ένθετα αντικείμενα σε ξεχωριστές στήλες. Μια τιμή που είναι η ίδια αντικείμενο ή πίνακας γράφεται ξανά ως κείμενο JSON μέσα σε ένα μόνο κελί· έτσι το {"b": 1} γίνεται το κελί {"b":1} και το [1, 2] γίνεται το κελί [1,2]. Δεν χάνεται τίποτα, αλλά το ένθετο τμήμα παραμένει σε μία στήλη αντί να διαχωρίζεται. Ισοπεδώστε πρώτα χειροκίνητα το ένθετο JSON, αν κάθε τμήμα χρειάζεται τη δική του στήλη.
Μια τιμή null και ένα κλειδί που υπάρχει σε ένα αντικείμενο αλλά λείπει από άλλο παράγουν και τα δύο ένα κενό κελί.
Μια τιμή κελιού που περιέχει κόμμα, εισαγωγικό ή αλλαγή γραμμής περικλείεται σε διπλά εισαγωγικά στην έξοδο, ενώ κάθε εισαγωγικό που περιέχεται σε αυτήν διπλασιάζεται, σύμφωνα με τον παραπάνω κανόνα διαφυγής του CSV.
Το εισαγόμενο JSON πρέπει να είναι πίνακας και κάθε στοιχείο του πρέπει να είναι αντικείμενο. Ένας αριθμός, μια συμβολοσειρά, το null ή ένας ένθετος πίνακας στη θέση αντικειμένου προκαλεί το σφάλμα «Το JSON πρέπει να είναι πίνακας αντικειμένων». Ένας πίνακας χωρίς κανένα στοιχείο προκαλεί το σφάλμα «Ο πίνακας JSON είναι κενός. Πρόσθεσε τουλάχιστον ένα αντικείμενο για μετατροπή». Ένα μεταφορτωμένο αρχείο χωρίς καθόλου περιεχόμενο προκαλεί το σφάλμα «Το μεταφορτωμένο αρχείο είναι κενό».
Λυμένο παράδειγμα
Αρχικό αρχείο CSV:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Η μετατροπή του σε JSON παράγει:
1[
2 {
3 "Name": "Ann Lee",
4 "Age": 29,
5 "Member": true
6 },
7 {
8 "Name": "Bo, Jr.",
9 "Age": 7,
10 "Member": false
11 }
12]
13Σημειώστε ότι το "Bo, Jr." διατήρησε το κόμμα του, επειδή το πεδίο ήταν περικλεισμένο σε εισαγωγικά στο αρχικό αρχείο, ενώ τα Age και Member έγιναν αριθμός και λογική τιμή αντίστοιχα.
Η μετατροπή του ίδιου JSON ξανά σε CSV, με μια επιπλέον γραμμή στην οποία λείπει το Age, παράγει:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5Η τιμή Age που λείπει γίνεται κενό κελί, ενώ το κόμμα στο "Bo, Jr." προκαλεί την εκ νέου περικλείση του πεδίου σε εισαγωγικά κατά την έξοδο.
Συνήθεις χρήσεις
- Ανάλυση δεδομένων: μετατροπή μιας εξαγωγής CSV από υπολογιστικό φύλλο ή εργαλείο ανάλυσης σε JSON, ώστε να μπορεί να υποβληθεί σε επεξεργασία με JavaScript, και στη συνέχεια μετατροπή των αποτελεσμάτων ξανά σε CSV για μια αναφορά.
- Έλεγχος API: ένας προγραμματιστής που δημιουργεί ένα API το οποίο δέχεται μεταφορτώσεις CSV μπορεί να μετατρέψει δείγματα αρχείων σε JSON, για να ελέγξει αν ένας αναλυτής παράγει τα αναμενόμενα αντικείμενα.
- Μετεγκατάσταση δεδομένων: μεταφορά εγγραφών από ένα σύστημα που εξάγει CSV σε ένα σύστημα που δέχεται μόνο JSON ή το αντίστροφο.
- Γρήγορη εξέταση: μετατροπή ενός αρχείου JSON σε CSV που μοιάζει με πίνακα, για ευκολότερη ανάγνωση, ή το αντίστροφο.
Οι βιβλιοθήκες προγραμματισμού προσφέρουν την ίδια μετατροπή για μεγαλύτερες ή επαναλαμβανόμενες εργασίες, όπως οι λειτουργικές μονάδες csv και json στην Python ή το pandas. Εργαλεία γραμμής εντολών, όπως τα csvkit και jq, χειρίζονται τη μετατροπή και το φιλτράρισμα από ένα τερματικό. Αυτές οι επιλογές είναι κατάλληλες για μαζική επεξεργασία, ενώ αυτό το εργαλείο προγράμματος περιήγησης εξυπηρετεί μια μεμονωμένη μετατροπή αρχείου χωρίς εγκατάσταση.
Συχνές ερωτήσεις
Στέλνεται το μεταφορτωμένο αρχείο σε διακομιστή; Όχι. Η μετατροπή εκτελείται σε JavaScript μέσα στην καρτέλα του προγράμματος περιήγησης. Το αρχείο διαβάζεται από την τοπική συσκευή και δεν μεταδίδεται ποτέ.
Υποστηρίζει ο μετατροπέας διαχωριστικά διαφορετικά από το κόμμα, όπως το ερωτηματικό ή ο στηλοθέτης; Όχι. Η τρέχουσα έκδοση διαβάζει μόνο τιμές διαχωρισμένες με κόμματα. Ένα αρχείο που χρησιμοποιεί διαφορετικό διαχωριστικό πρέπει πρώτα να μετατραπεί σε μορφή με διαχωριστικά κόμματα, για παράδειγμα με αντικατάσταση του διαχωριστικού σε έναν επεξεργαστή κειμένου.
Γιατί ένας αριθμός όπως το 00512 παρέμεινε συμβολοσειρά κειμένου στην έξοδο JSON;
Τα αρχικά μηδενικά έχουν συνήθως σημασία, όπως σε έναν ταχυδρομικό κώδικα, επομένως ο μετατροπέας διατηρεί την τιμή ως συμβολοσειρά αντί να τη μετατρέψει στον αριθμό 512, οπότε θα χανόταν το μηδενικό.
Τι συμβαίνει αν μετατρέψω JSON που περιέχει ένθετα αντικείμενα;
Το ένθετο αντικείμενο γράφεται ως κείμενο JSON σε ένα μόνο κελί, για παράδειγμα {"b":1}. Τα δεδομένα διατηρούνται, αλλά δεν διαχωρίζονται σε ξεχωριστές στήλες. Ισοπεδώστε πρώτα τα ένθετα δεδομένα, αν κάθε πεδίο χρειάζεται τη δική του στήλη.
Τι γίνεται αν το JSON μου δεν είναι πίνακας αντικειμένων;
Το εργαλείο εμφανίζει σφάλμα και δεν μετατρέπει τίποτα. Η είσοδος πρέπει να είναι ένας πίνακας JSON στον οποίο κάθε στοιχείο είναι αντικείμενο, για παράδειγμα [{"a":1},{"a":2}].
Πρέπει η πρώτη γραμμή ενός αρχείου CSV να είναι πάντα γραμμή κεφαλίδων; Ναι. Ο μετατροπέας αντιμετωπίζει πάντα την πρώτη γραμμή ως ονόματα στηλών. Σε ένα αρχείο χωρίς γραμμή κεφαλίδων, η πρώτη γραμμή δεδομένων θα διαβαστεί εσφαλμένα ως κεφαλίδες.
Παραπομπές
- Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, Οκτώβριος 2005. https://www.rfc-editor.org/rfc/rfc4180
- Bray, T., επιμ. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, Δεκέμβριος 2017. https://www.rfc-editor.org/rfc/rfc8259
- "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON