我的csv文件如下:
NAME,AGE
"John","23"
"BOB","24"
当执行下面的代码时,我得到
{}
作为警报而不是JSON对象。我的预期输出应为以下格式的JSON文件:
{
"items": [
{
"NAME": "John",
"AGE": " 23"
},
{
"NAME": "BOB",
"AGE": "24"
},
]
}
码:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="json.js"></script>
<script type="text/javascript" src="json2.js"></script>
<script type="text/javascript">
var lines = {};
$(document).ready(function() {
$.ajax({
type: "GET",
url: "data.csv",
dataType: "csv",
success: function(data) {processData(data);}
});
});
function processData(allText) {
var allTextLines = allText.split(/\r\n|\n/);
var headers = allTextLines[0].split(',');
for (var i=1; i<allTextLines.length; i++) {
var data = allTextLines[i].split(',');
if (data.length == headers.length) {
var tarr = [];
for (var j=0; j<headers.length; j++) {
tarr.push(headers[j]+":"+data[j]);
}
lines.push(tarr);
}
}
alert(lines);
}
var val = JSON.stringify(lines);
alert(val);
</script>
</head>
<body>
</body>
</html>
最佳答案
/*NAME,AGE"John","23""BOB","24"*/
var mvJSON = {};
var myCSV;
var myJSON_str = '{"items":[]}';
var resJSON_str = "";
//*** Edit
$.get("yourcsvfilepath.csv",function(data){
// coopy file content of csv to variable
myCSV = data;
console.clear();processData(myCSV);
});
//*** Done Edit
function processData(allText) {
var items = allText.split(',');
var keys = [items[0],items[1]];
var items_str = "";
for(var i = 2; i< items.length;i = i+2){
items_str += (i==2) ? '{"'+keys[0]+'":'+items[i]+',"'+keys[1]+'":'+items[i+1]+'}' : ',{"'+keys[0]+'":'+items[i]+',"'+keys[1]+'":'+items[i+1]+'}';
}
items_str = items_str.replace("\n","");
items_str = items_str.replace("\r","");
resJSON_str = myJSON_str.substring(0,myJSON_str.length-2)+items_str+myJSON_str.substring(myJSON_str.length-2,myJSON_str.length);
alert(resJSON_str);
}
关于javascript - 来自CSV的JSON对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18371683/