混淆int转换

我正在写一个节点js程序,执行下面的操作。

  1. 得到JSON。
  2. parsing它。
  3. 打印到控制台。

目前我能够非常顺利地完成以上三件事情。 但是我的问题出现在这里。 我试图从json转换为int值。 以下是我的样本数据。

 { "Items": [ { "accountId": "12345", "pin": "1234", "userId": "user1", "dueDate": "5/20/2017", "_id": "2", "dueAmount": "4000", "totalBalance": "10000" } ], "Count": 1, "ScannedCount": 4 } 

从上面的json我需要int格式的dueAmount ,所以我尝试了下面的代码。

 var userDueDate = JSON.stringify(res.Items[0].dueDate); var userDueAmount = JSON.stringify(res.Items[0].dueAmount); var userTotalBalance = JSON.stringify(res.Items[0].totalBalance); var intUsingNumber = Number(userDueAmount); var intUsingParseInt = parseInt(userDueAmount); console.log('by using Number : ' + intUsingNumber + ' and the type is :' + (typeof intUsingNumber)); console.log('by using Parse : ' + intUsingParseInt + ' and the type is :' + (typeof intUsingParseInt)); 

当我运行这个程序,我得到的输出为

 by using Number : NaN and the type is :number by using Parse : NaN and the type is :number 

在哪里我需要打印4000而不是NaN

此外,我感到困惑的是, type显示为一个number ,但价值为NaN

请让我知道我哪里错了,我该如何解决它。

谢谢

JSON是一个包装成string的JS对象:

let json = "{"dueAmount":"4000"}" – 是一个JSON对象,
let jsObj = {"dueAmount":"4000"}不是。

如果您收到一个JSON对象,则需要将其转换为JS对象

 let result = JSON.parse(json) 

接着

 parseInt(result.dueAmount) 

尝试下面的代码 (不需要使用JSON.stringify)

  var userDueDate =res.Items[0].dueDate; var userDueAmount = res.Items[0].dueAmount; var userTotalBalance = res.Items[0].totalBalance; var intUsingParseInt = parseInt(userDueAmount); console.log('by using Parse : ' + intUsingParseInt + ' and the type is :' + (typeof intUsingParseInt)); 

假设res是一个JSON对象。 你可以简单地使用parseInt函数来获取数字格式。

 var am = parseInt(res.Items[0].dueAmount) 

你不应该在这里使用JSON.stringify。 因为它将JSON对象转换为一个string。