如何在 JSON.stringify() 中将值保留为数字



我正在尝试使用JSON.stringify()将一些值解析为JSON格式。该amount是一个字符串变量。我希望将 JSON 格式的最终值作为数字,但我目前的方式不起作用。JSON.stringify()后它仍然以"price":"1.00"的形式出现.如何确保 JSON 中的最终值是一个数字?感谢您的帮助!

我当前的代码:

var data = JSON.stringify({
 "payer": "a cat",     
 "price": parseFloat(amount).toFixed(2),
});

toFixed返回一个字符串。如果要输出一个数字,只需使用 parseFloat

JSON.stringify({
  "payer": "a cat",
  "price": parseFloat(amount)
});

我认为没有办法在不将其转换为字符串的情况下将数字输出到小数点后的任何精度。

我认为 Number() 也可以工作

区别就在这里。我在 JSON.stringify 中使用过两者

var data = JSON.stringify({
  "payer": "a cat",
  "price": Number(amount)
});

我遇到了同样的问题,创建随机浮点数,这是我的解决方案:

// Create a random float number between 10 and 120, with only 2 decimal place
var number = Math.floor((Math.random()*110+10)*100)/100

所以仍然是一个浮点值,小数点后 2 位,也在 JSON.stringify() 之后

这种方式对我有用。

function replace(key, value) {
  if (typeof value != "object") {
    let change = parseFloat(value);
    return change;
  }
  return value;
}
const msg = JSON.stringify(params, replace);`
参数

是包含查询参数的变量。

JSON.stringify(obj, (key, value) => {
    if (!isNaN(value))
        value = Number(value)
    return value
})

最新更新