【问题标题】:JSON value type casting [closed]JSON值类型转换[关闭]
【发布时间】:2021-06-06 22:23:49
【问题描述】:

此字段值是一个数字,但我将输出作为字符串。

  1. 我要对它进行类型转换吗?我该怎么做?
  2. 我尝试做一个 parseInt 但也不起作用,是我用错了吗?

代码:

    app.get("/api/timestamp/:date", function(req, res) {
      let dateString = req.params.date
      ...
      //This unix part here!
      if (dateString == 1451001600000) {
        res.json({ unix: 1451001600000, utc: "Fri, 25 Dec 2015 00:00:00 GMT"});
    }
});

我的 o/p:

{
unix: "1451001600000",
utc: "Fri, 25 Dec 2015 00:00:00 GMT"
}

预期 o/p :

{
unix: 1451001600000,
utc: "Fri, 25 Dec 2015 00:00:00 GMT"
}

【问题讨论】:

  • edit您的问题以文本形式显示您的输出和预期输出,而不是文本图片的链接。
  • 你使用parseInt创建dateInteger,然后使用dateString,它是一个字符串,作为unix的值。如果您想要解析的整数,请使用dateInteger

标签: javascript json api express casting


【解决方案1】:

Date 的转换和输入看起来不错。

尝试在 res.json 行之后的第一个 if 内添加 return 语句。否则,第 9 行也将针对这种情况运行,并且稍后会覆盖响应。

if (/\d{5,}/.test(dateString)) {
    let dateInteger = parseInt(dateString);
    res.json({ unix: dateString, utc: new Date(dateInteger).toUTCString() });
    return;
}

在您最近的编辑之后,我注意到您想要一个 unix 属性的数字,因此请使用 Number() 或使用 dateInteger

res.json({ unix: Number(dateString), utc: new Date(dateInteger).toUTCString() });

【讨论】:

  • 谢谢,感谢您的帮助:)
猜你喜欢
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多