2016-11-09 2 views
1

CSVファイルをロードして、JSONオブジェクトに解析してから、これらの文字列を数値に変換しています。それらはブラウザコンソールに数値として表示され、AJAXを使用してデータをサーバーに送信しています。私はconsole.logのデータはすべて文字列ですか?私はJSONは、さまざまなデータ型を受け入れることができますが、なぜそれが文字列として行を下っているのですか?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

このデータはストレートノード内のデータと全く作業がないデータベースにインポートされます。私のデータベースでは、文字列としてもインポートされます。

思考?私は何が欠けていますか?

+0

JSONは常に文字列表現です.JavaScript(または他の言語)で使用するオブジェクトを作成するために解析する必要があります。他の言語)は、結果のオブジェクトを他のオブジェクトと同じように扱います。 – Falk

+0

JSONはStringとしてシリアル化されたオブジェクト表現です。受信側で 'JSON.parse'を呼び出すだけで、オブジェクトを逆シリアル化する必要があると思います。 –

答えて

1

JSONを使用すると、さまざまなデータ型を入力できます。ただし、1つの大きな文字列としてシリアル化され、そのままサーバーに送信されます。サーバー側では、文字列をオブジェクトに再度解析する必要があります。このステップは、サーバーがどの言語で動作しているかによって異なります。

関連する問題