我正在加载CSV
文件,将其解析为JSON
对象,然后我将这些字符串转换为数字。它们在浏览器控制台中显示为数字,然后使用AJAX我将数据发送到服务器。当我在console.log中时数据一切都是字符串?我虽然JSON
可以接受各种数据类型,但为什么它会像字符串一样下线呢?
这是代码。
for(var i = 0; i < input.files.length; i++){
var files = input.files[i];
Papa.parse(files, {
header:false,
dynamictyping:true,
complete: function(results){
var input = results.data;
if(input[0][0] === 'Symbol' || input[0][0] === 'symbol'){
input.shift();
}
input.forEach(function(input){
jsonData.theData = theData;
var singleEntry = {
"symbol" : input[0],
"date" : input[1],
"open" : Number(input[2]),
"high" : Number(input[3]),
"low" : Number(input[4]),
"close" : Number(input[5]),
"volume" : Number(input[6])
};
// Here we will try to do the daily computations of what is needed for data
// such as percentage closed in the day and what not.
var open = singleEntry.open;
var high = singleEntry.high;
var low = singleEntry.low;
var close = singleEntry.close;
/*
console.log(open);
console.log(high);
console.log(low);
console.log(close); */
//Get the Math variables for close percentage
var spread = high - low;
var closeDiff = close - low;
var answer = closeDiff / spread;
console.log(answer);
//Adding day closes to object
if (singleEntry.volume === 0){
singleEntry["supportDay"] = false;
} else {
if(answer <= .3999){
singleEntry["percentClose"] = answer;
singleEntry["supportDay"] = false;
console.log("answer <= .39999");
} else if (answer > .95) {
singleEntry["percentClose"] = answer;
singleEntry["supportDay"] = true;
singleEntry["peakClose"] = true;
console.log("answer > .95");
} else {
singleEntry["percentClose"] = answer;
singleEntry["supportDay"] = true;
}
}
jsonData.theData.push(singleEntry);
console.log(singleEntry.supportDay);
return jsonData;
}); // End forEach loop
document.getElementById("editor").innerHTML = JSON.stringify(jsonData.theData[0]);
} // End Callback Complete
}); // End PapaParse
} // End for loop
});
因为你可以看到我可以使用这些对象,这里是浏览器上的console.log输出,所有代码都在浏览器中。
现在这是服务器的console.log:
此数据直接导入数据库,无法处理Node中的数据。在我的数据库中,它也作为字符串导入。
思考?我错过了什么?
答案 0 :(得分:1)
使用JSON,您的输入可以是各种数据类型。但是,它被序列化为一个大字符串,并将线路发送到您的服务器。在服务器端,需要再次将字符串解析为对象。该步骤将根据您的服务器运行的语言类型而有所不同。