mengkonversi CSV / XLS ke JSON? [Tutup]


142

Adakah yang tahu jika ada aplikasi yang akan membiarkan saya mengonversi XLS ke JSON?

Saya juga akan menerima konverter dari CSV karena itulah yang saya mungkin akhirnya harus menulis sendiri jika tidak ada apa-apa di sekitar.


Bagaimana struktur XLS? Apakah Anda menganggap bahwa baris pertama adalah tajuk kolom?
SheetJS


CsvCruncher mengambil CSV sebagai tabel SQL dan membiarkan Anda melakukan SELECT, mengekspor hasilnya sebagai CSV atau JSON. github.com/OndraZizka/csv-cruncher
Ondra Žižka

Ini dapat dengan mudah dilakukan menggunakan panda dataframe. Impor csv Anda ke bingkai data panda dan rahasia ke json.
R4444

1
Saya sarankan Anda melihat Transformer Data (penafian - saya pengembangnya). Itu mengkonversi antara CSV, JSON, XML, dan YML secara lokal. Ini menawarkan sejumlah pengaturan konversi (dengan standar yang baik) sehingga Anda dapat menyesuaikan hasilnya untuk tujuan Anda. Anda bisa mendapatkannya dari Mac App Store atau Microsoft Store .
Geo Systems

Jawaban:


77

Ini berfungsi dengan baik untuk saya dan TIDAK memerlukan unggahan file:

https://github.com/cparker15/csv-to-json?files=1


Jika Anda ingin mengonversi ke teks yang dapat Anda tempelkan dalam kode Anda, gunakan opsi "Actionscript".
Steve O'Connor

Sayangnya situs web ini rusak
Mazen Kasser

3
Sepertinya sumbernya ada di GIT: github.com/cparker15/csv-to-json?files=1
zmonteca

@zmonteca Memperbarui jawaban dengan tautan Anda
robertc

Terima kasih, ini berhasil. Anda hanya perlu memperbarui dependensi proyek ini, jika tidak gagal untuk menjalankan
hd84335

195

Anda dapat mencoba alat yang saya buat ini:

Tn. Data Converter

Itu mengkonversi ke JSON, XML dan lainnya.

Ini semua sisi klien juga, jadi data Anda tidak pernah meninggalkan komputer Anda.


terlihat menarik, sakit kembali ke ini ketika saya membutuhkannya lagi
mkoryak

6
Tidak apa-apa tapi waspadai itu tidak luput dari kutipan dengan benar. Ketika CSV Anda berisi tanda kutip ganda, hasilnya tidak akan keluar. Anda mungkin harus melakukannya dengan tangan. Alat yang sangat berguna nontheless.
barrycarton

Alat hebat! dilakukan dengan baik. @barrycarton sepertinya ini sudah diperbaiki jika Anda menarik kode terbaru dari Github. Yang ada di tautan di atas sepertinya sudah ketinggalan zaman.
Bach

Hai @ Shan Carter Saya ingin pengguna hanya memuat file excel, Tidak menyalin konten excel, Apakah mungkin dengan kode saat ini atau saya harus memotongnya (Jika mungkin untuk melakukannya). Silakan bagikan pemikiran Anda.
Rahul Gautam

1
Alat luar biasa, @Shan Carter. Saya mengambil kebebasan untuk memperbaiki beberapa hal di garpu saya di sini: thdoan.github.io/mr-data-converter
thdoan

38

Karena Powershell 3.0 (dikirimkan bersama Windows 8, tersedia untuk Windows 7 dan windows Server 2008 tetapi tidak untuk Windows Vista) Anda dapat menggunakan commandlet convertto-json bawaan:

PS E:> $topicsjson = import-csv .\itinerary-all.csv | ConvertTo-Json 

PS E:\> $topicsjson.Length
11909

PS E:\> $topicsjson.getType()

IsPublic IsSerial Name                                     BaseType                  
-------- -------- ----                                     --------                  
True     True     Object[]                                 System.Array              

Halaman Bantuan Online di Technet


7
Kredit ekstra: simpan json ke file ... $ topikjson | Tambah-Konten -Path "mydata.json"
brady321

28

Jika Anda tidak dapat menemukan solusi yang ada, cukup mudah untuk membangun yang dasar di Jawa. Saya hanya menulis satu untuk klien dan hanya butuh beberapa jam termasuk alat riset.

Apache POI akan membaca biner Excel. http://poi.apache.org/

JSONObject akan membangun JSON

Setelah itu hanya masalah iterasi melalui baris dalam data Excel dan membangun struktur JSON. Berikut beberapa kode semu untuk penggunaan dasar.

FileInputStream inp = new FileInputStream( file );
Workbook workbook = WorkbookFactory.create( inp );

// Get the first Sheet.
Sheet sheet = workbook.getSheetAt( 0 );

    // Start constructing JSON.
    JSONObject json = new JSONObject();

    // Iterate through the rows.
    JSONArray rows = new JSONArray();
    for ( Iterator<Row> rowsIT = sheet.rowIterator(); rowsIT.hasNext(); )
    {
        Row row = rowsIT.next();
        JSONObject jRow = new JSONObject();

        // Iterate through the cells.
        JSONArray cells = new JSONArray();
        for ( Iterator<Cell> cellsIT = row.cellIterator(); cellsIT.hasNext(); )
        {
            Cell cell = cellsIT.next();
            cells.put( cell.getStringCellValue() );
        }
        jRow.put( "cell", cells );
        rows.put( jRow );
    }

    // Create the JSON.
    json.put( "rows", rows );

// Get the JSON text.
return json.toString();

Jika saya memiliki excel disimpan di E: /exceloutput.xlsx. Apa yang akan menjadi nilai dalam file dan inp di dua baris pertama?
Kate




5

Tidak ada solusi yang ada yang berfungsi, jadi saya dengan cepat meretas sebuah skrip yang akan melakukan pekerjaan itu. Juga mengonversi string kosong menjadi nol dan dan memisahkan baris header untuk JSON. Mungkin perlu disetel tergantung pada dialek CSV dan charset yang Anda miliki.

#!/usr/bin/python
import csv, json
csvreader = csv.reader(open('data.csv', 'rb'), delimiter='\t', quotechar='"')
data = []
for row in csvreader:
    r = []
    for field in row:
        if field == '': field = None
        else: field = unicode(field, 'ISO-8859-1')
        r.append(field)
    data.append(r)
jsonStruct = {
    'header': data[0],
    'data': data[1:]
}
open('data.json', 'wb').write(json.dumps(jsonStruct))

Apakah ini terkait dengan johntron.com/creations/csv-to-json
David

Tidak, kecuali bahwa perpustakaan yang sama (csv, json) sedang digunakan. Saya menulis kode saya dari awal. Loop diperlukan untuk pemrosesan yang ingin saya lakukan (konversi charset dan mengganti string kosong dengan nol).
Tronic

Saya bertanya-tanya tentang konflik antara banyak komentar yang mengatakan "ini bekerja untuk saya" dan yang ini mengklaim bahwa "tidak ada solusi yang ada yang berhasil."
B. Clay Shannon

4

Alih-alih konverter hard-coded, bagaimana dengan dukungan CSV untuk Jackson (prosesor JSON): https://github.com/FasterXML/jackson-dataformat-csv . Jadi inti Jackson dapat membaca JSON sebagai POJO, Maps JsonNode,, hampir apa saja. Dan dukungan CSV dapat melakukan hal yang sama dengan CSV. Kombinasikan keduanya dan itu sangat kuat tetapi konverter sederhana antara banyak format (ada backend untuk XML, YAML sudah, dan banyak lagi yang ditambahkan).

Artikel yang menunjukkan cara melakukan ini dapat ditemukan di sini .


3

Lihat apakah ini membantu: Kembali ke CSV - Konversikan teks CSV ke Objek; melalui JSON

Ini adalah posting blog yang diterbitkan pada November 2008 yang mencakup kode C # untuk memberikan solusi.

Dari intro di posting blog:

Karena Json lebih mudah untuk membaca dan menulis, maka Xml. Oleh karena itu CSV (comma separated values) lebih mudah dibaca dan ditulis daripada Json. CSV juga memiliki alat seperti Excel dan lainnya yang membuatnya mudah untuk dikerjakan dan dibuat. Jadi jika Anda ingin membuat file konfigurasi atau data untuk aplikasi Anda berikutnya, berikut adalah beberapa kode untuk mengonversi CSV ke JSON menjadi objek POCO


1
Terima kasih. sakit harus port ini ke java, tetapi lebih baik daripada mencoba untuk menemukan kembali roda
mkoryak

senang itu bekerja, c # -> java adalah pasangan yang cukup bagus.
qxotk
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.