将CSV/XLS转换为JSON?

将CSV/XLS转换为JSON?,json,csv,xls,Json,Csv,Xls,有人知道是否有应用程序可以让我将XLS转换成JSON吗 我还将满足于CSV的转换器,因为如果周围没有任何东西,我可能最终不得不自己编写它。看看这是否有帮助: 这是一篇发表于2008年11月的博客文章,其中包括提供解决方案的C#代码 从博客文章的介绍中: 因为Json比Xml更容易读写。因此,CSV(逗号分隔值)比Json更易于读写。CSV还具有Excel等工具,使其易于使用和创建。因此,如果您想要为下一个应用程序创建配置或数据文件,下面是一些将CSV转换为JSON再转换为POCO对象的代码 我刚

有人知道是否有应用程序可以让我将XLS转换成JSON吗

我还将满足于CSV的转换器,因为如果周围没有任何东西,我可能最终不得不自己编写它。

看看这是否有帮助:

这是一篇发表于2008年11月的博客文章,其中包括提供解决方案的C#代码

从博客文章的介绍中:

因为Json比Xml更容易读写。因此,CSV(逗号分隔值)比Json更易于读写。CSV还具有Excel等工具,使其易于使用和创建。因此,如果您想要为下一个应用程序创建配置或数据文件,下面是一些将CSV转换为JSON再转换为POCO对象的代码

我刚刚发现:


(注意:您必须通过网址获得csv文件)

如果您找不到现有的解决方案,那么用Java构建一个基本的解决方案非常容易。我刚刚为一个客户写了一篇文章,包括研究工具在内,只花了几个小时

ApachePOI将读取Excel二进制文件。

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();
FileInputStream inp=newfileinputstream(文件);
工作簿=WorkbookFactory.create(inp);
//拿到第一张纸。
工作表=工作簿。getSheetAt(0);
//开始构建JSON。
JSONObject json=新的JSONObject();
//遍历行。
JSONArray行=新的JSONArray();
for(迭代器rowsIT=sheet.rowsiterator();rowsIT.hasNext();)
{
Row=rowsIT.next();
JSONObject jRow=新的JSONObject();
//遍历单元格。
JSONArray cells=新的JSONArray();
for(迭代器cellsIT=row.cellIterator();cellsIT.hasNext();)
{
Cell Cell=cellsIT.next();
cells.put(cell.getStringCellValue());
}
放置(“单元格”,单元格);
rows.put(jRow);
}
//创建JSON。
put(“rows”,rows);
//获取JSON文本。
返回json.toString();

这对我来说非常有效,不需要上传文件:


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

它可以转换为JSON、XML和其他格式


它也都是客户端的,所以你的数据永远不会离开你的计算机。

现有的解决方案都不起作用,所以我很快就拼凑了一个脚本来完成这项工作。还将空字符串转换为null并分隔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))

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


它使用node.js而不是硬编码转换器,对Jackson(JSON处理器)的CSV支持如何。因此,core Jackson可以将JSON读入POJO、映射、
JsonNode
,几乎可以读入任何内容。CSV支持也可以对CSV进行同样的操作。将两者结合起来,它是一个功能强大但简单的多种格式之间的转换器(已经有了XML、YAML的后端,并且正在添加更多)

您可以找到一篇介绍如何执行此操作的文章。

由于Powershell 3.0(随Windows 8提供,但不随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              

这适用于我并运行客户端:

谢谢。我必须将其移植到java,但最好是尝试重新设计轮子。很高兴它能工作,c#->java是一个很好的匹配。看起来很有趣,当我需要againIt时,我会回到这个问题上,但请注意它没有正确地转义引号。当CSV包含双引号时,输出不会转义。你可能得手工做。非常方便的工具。非常好的工具!干得好@barrycarton如果你从Github获取最新的代码,这似乎已经被修复了。上面链接中的那个似乎过时了。嗨@Shan Carter我希望用户只加载excel文件,而不是复制excel的内容,是否可以使用当前代码,或者我应该分叉它(如果可以的话)。请分享你的想法。很棒的工具,@Shan Carter。我在这里冒昧地说:这项服务需要一个上传按钮。网络下行链路不起作用。这与否有关,只是使用了相同的库(csv、json)。我从头开始写代码。循环是我想要做的处理(字符集转换和用null替换空字符串)所必需的。我想知道许多评论说“这对我有用”和这个评论声称“现有解决方案都不起作用”之间的冲突。XLS是如何构造的?假设第一行是列标题吗?CSVkit会这样做:CsvCruncher将CSV作为SQL表,让我们进行选择,将结果导出为CSV或JSON。这可以通过使用熊猫数据帧轻松完成。将您的csv导入pandas dataframe并将其转换为json。我建议您查看(免责声明-我是它的开发人员)。它在本地CSV、JSON、XML和YML之间进行转换。它提供了许多转换设置(具有良好的默认设置),因此您可以根据自己的目的定制结果。您可以从或获取。如果您想转换为可以粘贴到代码中的文本,请使用“Actionscript”选项。不幸的是,此网站已关闭。源代码似乎在GIT上:@zmonteca使用您的链接更新了答案谢谢,它可以工作。您只需更新此项目的依赖项,否则它将无法运行谢谢您的建议:)转换器工作正常。此转换器包含制表符分隔符,因此您可以直接从Excel粘贴。它不再是活动的。链接是最新的。应该能用的,开着。这是最灵活的工具。我想要一种使用CSV()创建嵌套数组或对象的方法。如果我将excel存储在E:/exceloutput.xlsx中。前两行的file和inp中的值是多少?额外提示:将json保存到fi