JSON数据类型 - 数字在到达服务器时转换为字符串

时间:2016-11-09 17:41:56

标签: javascript json node.js

我正在加载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输出,所有代码都在浏览器中。

enter image description here

现在这是服务器的console.log:

enter image description here

此数据直接导入数据库,无法处理Node中的数据。在我的数据库中,它也作为字符串导入。

思考?我错过了什么?

1 个答案:

答案 0 :(得分:1)

使用JSON,您的输入可以是各种数据类型。但是,它被序列化为一个大字符串,并将线路发送到您的服务器。在服务器端,需要再次将字符串解析为对象。该步骤将根据您的服务器运行的语言类型而有所不同。