我正在使用以下代码,但我收到错误:JSON未定义。任何线索?
<html>
<head>
<title>Demo - Covnert JSON to CSV</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="https://github.com/douglascrockford/JSON-js/raw/master/json2.js"></script>
<script type="text/javascript">
// JSON to CSV Converter
function ConvertToCSV(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]) {
if (line != '') line += ','
line += array[i][index];
}
str += line + '\r\n';
}
return str;
}
// Example
$(document).ready(function () {
// Create Object
var items = [
{
"items": [
{
"ID": "1",
"NAME": " John"
},
{
"ID": "2",
"NAME": " Ashley"
},
{
"ID": "3",
"NAME": " Joseph"
}
]
}];
// Convert Object to JSON
var jsonObject = JSON.stringify(items);
// Display JSON
$('#json').text(jsonObject);
// Convert JSON to CSV & Display CSV
$('#csv').text(ConvertToCSV(jsonObject));
});
</script>
</head>
<body>
<h1>
JSON</h1>
<pre id="json"></pre>
<h1>
CSV</h1>
<pre id="csv"></pre>
</body>
</html>
答案 0 :(得分:0)
JSON.parse
是not present in outdated browsers,最值得注意的是IE7。您收到该错误是因为浏览器未向您提供window.JSON
。
因此,您正在使用json2.js
。但是,github 不希望您热链接到文件,因此将其作为text/plain
提供。这会导致浏览器不将其解释为脚本,因此它永远不会执行,并且不会提供JSON
对象。
您需要自己托管json2.js
,或者找到并使用CDN。
答案 1 :(得分:0)
在for循环之前添加以下行:
array = array[0].items;
基本上,您解析的JSON是一个包含一个对象items的数组,这些对象本身就是一个包含三个对象的数组。你刚才没有找到正确的阵列。