【发布时间】:2017-11-20 13:24:23
【问题描述】:
我有一个 JSON:
var datat= {"Model": "Model A",
"Datase": [
{
"Id": "DatchikSveta11",
"Group": 2,
"State": "on",
"Data": [{
"Date":"2017-08-11 15:10:34.363",
"Value":"0"
},{
"Date":"2017-08-12 21:12:34.363",
"Value":"32"
},{
"Date":"2017-08-15 21:55:34.363",
"Value":"200"
}],
"DataVolume": "luxs"
},{
"Id": "DatchikSveta2",
"Group": 2,
"State": "on",
"Data": [{
"Date":"2017-08-11 17:11:34.363",
"Value":"100"
},{
"Date":"2017-08-15 18:11:34.363",
"Value":"100"
},{
"Date":"2017-08-16 19:12:34.363",
"Value":"200"
}],
"DataVolume": "luxs"
}
]}
我有一个解析 JSON 对象的函数。
parseDate = d3.timeParse("%Y-%m-%d %H:%M:%S.%L");
datat.Datase.forEach(function (kv) {
kv.Data.forEach(function (d) {
parseDate(d.Date);
parseInt(d.Value);
});
});
此函数更改原始 JSON 对象中的值(解析日期的日期),因此当我第二次尝试调用此函数时,它会给出错误的值,因为它试图解析已经解析的日期。
我需要指定一个条件来检查您是否需要解析。 或者,也许有人有一个函数,可以在不改变原始 JSON 的情况下提取解析值?我知道最简单的方法是从函数返回新变量,例如:
.data(function (d){
var a = d.Data.slice(d.Data.length-1,d.Data.length);
a.forEach(function (k){k["Id"]=d.Id; k["Date"]=parseDate(d.Date);});
return a;
})
我可以更改 JSON 中的日期格式,但谁需要简单的方法?
我是 javascript 新手,没有时间学习理论:P 但希望有人能给我一个好的答案。
对不起我的英语和理论,谢谢你的关注:)
【问题讨论】:
-
我开始编辑你的问题,但在中间,我放弃了。这很不清楚。请花点时间进行编辑,澄清您的问题和期望的结果。
-
同意,这个很不清楚。
-
对不起,伙计们。我的英语太差了,所以很难准确地表达一个想法。
-
请指定您的预期输出。
-
立即查看。我想我会的
标签: javascript arrays json parsing d3.js