Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSON javascript中查找和替换_Javascript_Json_D3.js - Fatal编程技术网

在JSON javascript中查找和替换

在JSON javascript中查找和替换,javascript,json,d3.js,Javascript,Json,D3.js,我正在使用d3.js创建图形,并使用JSON文件作为输入。我需要解析x轴的日期和时间格式。这就是我试过的代码 d3.json('data/fake_users11.json', function(data) { var parseDate = d3.time.format("%Y-%m-%d %H:%M:%S").parse; var old = JSON.stringify(data).replace(/\//g, "-"); data = JSON.parse(old); //conver

我正在使用d3.js创建图形,并使用JSON文件作为输入。我需要解析x轴的日期和时间格式。这就是我试过的代码

d3.json('data/fake_users11.json', function(data) {

var parseDate = d3.time.format("%Y-%m-%d %H:%M:%S").parse;
var old = JSON.stringify(data).replace(/\//g, "-");
data = JSON.parse(old); //convert back to array
data.forEach(function(d) {
    d.date = parseDate(d.date);
});
json文件是这样的

[
    {
        "date": "02\/18\/2016 18:02:38",
        "value": 10
    },
    {
        "date": "02\/18\/2016 18:02:45",
        "value": 20
    },
    {
        "date": "02\/18\/2016 18:02:50",
        "value": 30
    }
]
所需格式为02-18-2016 18:02:50。但我只是犯了个错误。我知道我很接近。有人能指出这里的错误吗?
谢谢。

我想你用错格式了

在您的日期中,年份已经结束,但您正试图在开始时解析它:

var parseDateWrong = d3.time.format("%Y-%m-%d %H:%M:%S").parse;
它应该是:

var parseDateOk = d3.time.format("%m-%d-%Y %H:%M:%S").parse;
请参阅以了解发生了什么

我认为您现在可以直接使用接收到的json,而不必将/替换为-:

var parseDate = d3.time.format("%m/%d/%Y %H:%M:%S").parse;

data.forEach(function(d) {
    d.date = parseDate(d.date);
});

“我只是犯了个错误”这听起来确实像是一条信息,应该包含在您的问题中。错误似乎来自d3.js,因为数据不是d3时间格式解析所需的数据。向
foreach
函数添加
控制台.log
,以显示发送到
parseData
的值和结果。很漂亮!是的,解决了。!我甚至不认为这是个问题!我没有更改你的代码,但我认为没有必要用-是的,但我希望它是-这就是为什么我要替换它:p…无论如何,谢谢兄弟:)