如何将json.stringify()分配给javascript变量

时间:2017-01-24 15:21:12

标签: javascript json node.js string integer

在这段代码中,我希望通过这一行来计算我从excel文件中获取的特定数据的总和:

 " sumofKoli += JSON.stringify(row.values[4]);".

我的问题是即使是这行代码:

console.log(JSON.stringify(row.values[3])+" Sold number of :"+ JSON.stringify(row.values[4]));

给我想要的“47”,我确实想要一个整数,当我尝试总结所有数据,我有一个结果,如“94559129995555.5.2556149.9”。它将它添加为字符串值,我希望它总和为整数。你能救我吗?

以下是完整代码:

Reader.prototype.readExcel = function(chartType,callback){


  // read from a file
  var workbook = new Excel.Workbook();
  var sumofKoli=0;
  var sumPrice =0;
  workbook.xlsx.readFile(filename)
      .then(function(err,results) {
          var worksheet = workbook.getWorksheet('Sayfa1');
          worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
            console.log("----------");
            console.log(JSON.stringify(row.values[3])+" Sold number of :"+ JSON.stringify(row.values[4]));
            console.log("----------");
            sumofKoli += JSON.stringify(row.values[4]);
            console.log(JSON.stringify(row.values[3])+" Sold in price of  :"+ JSON.stringify(row.values[5]));
            sumPrice += JSON.stringify(row.values[5]);
            console.log("----------");

          });
          results = { sumofKoli : sumofKoli, sumTutar : sumPrice};
          if (err){callback(err,null);}

          callback(null,results);
      });

4 个答案:

答案 0 :(得分:1)

您必须使用parseInt将字符串转换为数字

sumofKoli += parseInt(JSON.stringify(row.values[4]));

答案 1 :(得分:0)

在尝试对它们求和时,将json'd值转换为parseInt(或parseFloat如果有小数)函数的整数。

由于您的值当前被视为字符串,因此它目前将它们连接起来而不是添加它们。

答案 2 :(得分:0)

如果您的数据仅为整数,则在添加时使用parseInt而不是JSON.stringify。如果您也有浮点值,请使用parseFloat。语法很简单:

sumofKoli += parseInt(row.values[index])

答案 3 :(得分:0)

OP要求对整数求和,所以类似于Vladu Ionut的答案应该是:

sumofKoli += parseInt(JSON.stringify(row.values[4]));

但是,为什么要串联一个JSON然后解析呢?为什么不直接使用该值?

sumofKoli += parseInt(row.values[4]);

将某些东西串化后,似乎很奇怪。