преобразование CSV / XLS в JSON? [закрытый]


кто-нибудь знает, есть ли приложение, которое позволит мне скрыть предпочтительно XLS в JSON?

Я также соглашусь на конвертер из CSV, так как это то, что мне, вероятно, придется писать самому, если вокруг ничего нет.

10 130

10 ответов:

Это отлично работало для меня и не требует загрузки файла:

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

вы можете попробовать этот инструмент я сделал:

- Н-Конвертер Данных

он преобразуется в JSON, XML и другие.

Это все на стороне клиента, так что ваши данные никогда не покидает ваш компьютер.

начиная с Powershell 3.0 (поставляется с Windows 8, доступно для Windows 7 и windows Server 2008 но не Windows Vista ) вы можете использовать встроенный командлет convertto-json:

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              

страница онлайн-справки на Technet

Если вы не можете найти существующее решение, довольно легко построить базовое решение на Java. Я просто написал один для клиента, и это заняло всего пару часов, включая исследования инструментов.

Apache POI будет читать двоичный файл Excel. http://poi.apache.org/

JSONObject построит JSON

после этого это просто вопрос итерации по строкам в данных Excel и построения структуры JSON. Вот некоторые псевдо-код для основного использование.

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();

Это работает для меня и работает на стороне клиента: http://www.convertcsv.com/csv-to-json.htm

Я только что нашел это:

http://tamlyn.org/tools/csv2json/

(Примечание: Вы должны иметь ваш csv-файл доступен через веб-адрес )

попробуйте крошечный бесплатный инструмент:

http://keyangxiang.com/csvtojson/

Он использует узел.js модуль csvtojson

ни одно из существующих решений не сработало, поэтому я быстро взломал сценарий, который выполнит эту работу. Также преобразует пустые строки в нули и отделяет строку заголовка для JSON. Возможно, потребуется настроить в зависимости от диалекта CSV и кодировки у вас есть.

#!/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))

вместо жестко закодированных конвертеров, как насчет поддержки CSV для Jackson (JSON processor):https://github.com/FasterXML/jackson-dataformat-csv. таким образом, ядро Джексона может читать JSON в качестве POJOs, Maps,JsonNode почти ничего. И поддержка CSV может сделать то же самое с CSV. Объедините два, и это очень мощный, но простой конвертер между несколькими форматами (уже есть бэкэнды для XML, YAML и многое другое).

статья, которая показывает, как это сделать можно нашел здесь.

посмотреть, если это помогает: Back to CSV-преобразование текста CSV в объекты; через JSON

это сообщение в блоге, опубликованное в ноябре 2008 года, которое включает в себя код C# для предоставления решения.

из вступления в блоге:

как Json легче читать и писать, то Xml. Из этого следует, что CSV (разделенные запятыми значения) легче читать и писать, чем Json. CSV также имеет такие инструменты, как Excel и другие, которые позволяют легко работать с и создавать. Поэтому, если вы когда-нибудь захотите создать файл конфигурации или данных для своего следующего приложения, вот код для преобразования CSV в JSON в Poco objects