将MS Excel的JSON格式转换为CSV格式[关闭]


75

我收到了JSON文件,但不知道如何读取。有转换器可以在其中生成漂亮的CSV文件,以便将其加载到MS Excel中吗?我不了解JSON,所以如果有人编写脚本或将我链接到可以完成此任务的脚本,那将非常棒。

我在http://json.bloople.net上找到了一些接近的东西,但是不幸的是,它是JSON到HTML。

编辑:jsonformat.com越来越近,但是它仍然不是CSV。


有一个原因。CSV不是层级/结构化/格式正确的,而是JSON / HTML / XML。您是否只想获得一个巨大的弦?(不在乎订购)?
RPM1984 '11

6
我只需要一些可以以表格格式读取的内容,我认为使用CSV是正确的方法,因为我可以在Excel上打开它并开始编辑数据。
stockoverflow 2010年

1
值得注意的是,并非所有JSON都能可靠地转换为CSV。以下是一些无法使用JSON的示例:json.org/example.html听起来您正在使用的JSON的结构相对简单。
阿曼达

json-csv.com在线将JSON转换为CSV
Stack Man

Answers:


69

我不确定您在做什么,但这会使用JavaScript从JSON转换为CSV。这使用的是开源JSON库,因此只需将JSON.js下载到与您将下面的代码保存到的文件夹相同的文件夹中,它将静态JSON值解析json3为CSV,并提示您在Excel中下载/打开。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>JSON to CSV</title>
    <script src="scripts/json.js" type="text/javascript"></script>
    <script type="text/javascript">
    var json3 = { "d": "[{\"Id\":1,\"UserName\":\"Sam Smith\"},{\"Id\":2,\"UserName\":\"Fred Frankly\"},{\"Id\":1,\"UserName\":\"Zachary Zupers\"}]" }

    DownloadJSON2CSV(json3.d);

    function DownloadJSON2CSV(objArray)
    {
        var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

        var str = '';

        for (var i = 0; i < array.length; i++) {
            var line = '';

            for (var index in array[i]) {
                line += array[i][index] + ',';
            }

            // Here is an example where you would wrap the values in double quotes
            // for (var index in array[i]) {
            //    line += '"' + array[i][index] + '",';
            // }

            line.slice(0,line.Length-1); 

            str += line + '\r\n';
        }
        window.open( "data:text/csv;charset=utf-8," + escape(str))
    }

    </script>

</head>
<body>
    <h1>This page does nothing....</h1>
</body>
</html>

1
抱歉,这里不是程序员……我如何“使用”它?
stockoverflow 2010年

1
抱歉...请耐心等待...我将此代码粘贴到哪个程序中?是否必须与JSON文件位于同一目录中?
stockoverflow 2010年

1
这是JavaScript,您可以将其粘贴到网页中,然后将其用于将JSON转换为CSV ...如果要将其保存到文件中,则可以替换“ return str;”。
Zachary

上面的代码似乎无法处理json值中包含“,”的情况。例如:“ Sam,Smith”。也许有人可以确认这一点。
Michael Z

1
使用javascript CSV库(例如agnes.codeplex.comcode.google.com/p/jquery-csv)可能比滚动自己的CSV编写脚本更有意义。
2013年

63

我根据Zachary给出的答案在此处创建了一个JsFiddle 。它提供了更易于访问的用户界面,并且还正确地在字符串中转义了双引号。


1
我分叉它来支持缺少的键值对jsfiddle.net/gonzif/MfJPF/1您的第一个JSON对象用于定义列键。
贡·兹弗罗尼

2
那些很酷,但是都不支持json数组。因此它无法处理[{“ Id”:1,“ UserName”:“ Sam Smith”,“ Details”:{“ hair”:“ red”,“ eyes”:“ red”}}]
Dusty

1
另外,当我单击“下载”时,它开始以文件名“下载”开始下载,因此没有文件扩展名。所以,请您让我知道如何重命名该文件。
宝石

它对我不起作用
Luffydude

在小提琴中单击下载时,它不会以适当的扩展名(.csv)下载。您能帮忙进行哪些更改吗?
coderpc

1

您可以使用该要点(非常易于使用)将您的设置存储在本地存储中:https : //gist.github.com/4533361


我不了解您希望我在“标题”,“提取项目”或“转换项目”框中键入什么,也不了解您希望我在源代码中进行哪些更改。
Noumenon 2014年

1

使用Python是实现所需目标的一种简便方法。

我使用Google找到了一个。

例如“使用python将json转换为csv ”。


1
我以前从未使用过Python,我只知道它是一种编程语言,还有其他选择吗?
2010年

前面提到,您可以将JSON转换为HTML。Excel能够打开HTML。你有尝试过吗?
亨里克(Henrik)2010年

以下EE文章基于Perl,但可能会给您一些想法,因为它将以JSON文件的形式显示基于Dojo的Grid,或将其转换为XLS或XLSX。在sourceforge上还有一个基于Java的解决方案json2excel
arober11 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.