将CSV / XLS转换为JSON?

时间:2009-03-19 16:10:29

标签: json csv xls

有没有人知道是否有应用程序可以让我优先将XLS转换为JSON?

我也会选择使用CSV格式的转换器,因为如果周围没有任何内容,我可能最终不得不自己编写。

10 个答案:

答案 0 :(得分:192)

您可以尝试我制作的这个工具:

Mr. Data Converter

它转换为JSON,XML等。

这也是所有客户端,因此您的数据永远不会离开您的计算机。

答案 1 :(得分:75)

这对我来说很完美,不需要上传文件:

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

答案 2 :(得分:33)

由于Powershell 3.0(Windows 8附带,available for Windows 7 and 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              

Online Help Page on Technet

答案 3 :(得分:26)

如果您找不到现有的解决方案,那么使用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();

答案 4 :(得分:12)

这适用于我并运行客户端: http://www.convertcsv.com/csv-to-json.htm

答案 5 :(得分:6)

我刚刚发现了这个:

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

(注意:您必须通过网址提供您的csv文件)

答案 6 :(得分:6)

试试这个小小的免费工具:

http://keyangxiang.com/csvtojson/

它利用node.js csvtojson module

答案 7 :(得分:5)

现有的解决方案都没有用,所以我很快就将一个可以完成这项工作的脚本整合在一起。还将空字符串转换为空值,并为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))

答案 8 :(得分:4)

而不是硬编码转换器,对Jackson(JSON处理器)的CSV支持如何:https://github.com/FasterXML/jackson-dataformat-csv。所以核心杰克逊可以在POJO,地图,JsonNode中读取JSON,几乎任何东西。 CSV支持也可以使用CSV。将两者结合起来,它是非常强大但简单的多种格式之间的转换器(有后端用于XML,已经有YAML,还有更多要添加的内容)。

可以找到一篇展示如何执行此操作的文章here

答案 9 :(得分:3)

看看这是否有帮助:Back to CSV - Convert CSV text to Objects; via JSON

这是2008年11月发布的博客文章,其中包含提供解决方案的C#代码。

来自博客文章的介绍:

  

因为Json更容易阅读和写入Xml。接下来,CSV(逗号分隔值)比Json更容易读写。 CSV还具有Excel等工具,可以轻松使用和创建。因此,如果您想为下一个应用程序创建配置或数据文件,可以使用以下代码将CSV转换为JSON到POCO对象