【问题标题】:change json value's datatype in javascript在javascript中更改json值数据类型
【发布时间】:2017-08-29 14:00:23
【问题描述】:

我有一个具有以下值的 JSON 对象:

var json = [{
  "Time": "2017-08-17 16:35:28.000",
  "Value": "3.85"
}, {
  "Time": "2017-08-17 17:36:28.000",
  "Value": "3.85"
}, {
  "Time": "2017-08-17 18:35:28.000",
  "Value": "3.86"
}, {
  "Time": "2017-08-17 19:35:28.000",
  "Value": "3.86"
}, {
  "Time": "2017-08-18 07:35:28.000",
  "Value": "3.87"
}, {
  "Time": "2017-08-18 18:35:28.000",
  "Value": "3.86"
}];

时间是字符串格式,我想将其更改为日期时间。(我将它们存储在我用于 Highcharts 的 x 和 y 中) 我使用了以下功能:

json.forEach(function(element, index) {
  element.x = new Date(element['Time']).getTime();
  element.y = +element['Value'];

  delete element['Time'];
  delete element['Value'];
});

我收到一个错误:json.forEach 不是函数

输出图像: 在开发人员工具源选项卡中: Image

在警报中: Alert

如您所见,在开发人员工具中,它有引号,而在警报中则没有。不知道是什么问题

PS:抱歉,我没有足够的声望直接嵌入图片

【问题讨论】:

  • 从 var json 声明中删除 引号

标签: javascript json highcharts


【解决方案1】:

这是一个错字,从 json 声明中删除引号,您的解决方案将起作用

    var json = '[{  "Time": "2017-08-17 16:35:28.000",  "Value": "3.85"}, {"Time": "2017-08-17 17:36:28.000","Value": "3.85"}, {"Time": "2017-08-17 18:35:28.000","Value": "3.86"}, {"Time": "2017-08-17 19:35:28.000","Value": "3.86"}, {"Time": "2017-08-18 07:35:28.000","Value": "3.87"}, { "Time": "2017-08-18 18:35:28.000", "Value": "3.86"}]';
    
json = JSON.parse(json);
    json.forEach(function(element, index) {
      element.x = new Date(element['Time']).getTime();
      element.y = +element['Value'];

      delete element['Time'];
      delete element['Value'];
    });
 console.log(json);

【讨论】:

  • 拯救世界:)
  • 我删除了引号。然而我得到了同样的错误:(
  • 不,你不是(不应该)。该代码现在工作正常。我刚刚检查过。
  • 注意:我从控制器传递 JSON 对象(解析后)。当我看到开发人员工具源选项卡时,JSON 输出为“[{..},{..}..]”;(括在引号中)而在 alert(json) 中,输出为 [{..}, {..}..];
  • 我会添加图片:)
猜你喜欢
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-28
  • 1970-01-01
  • 1970-01-01
  • 2016-09-26
  • 2016-06-07
相关资源
最近更新 更多