Javascript 如何从另一种json格式获取一种json对象格式
也许这个问题已经在某个地方被问到并得到了回答,但在搜索了3个多小时后,我提出了这个问题 下面是我的JSON数据Javascript 如何从另一种json格式获取一种json对象格式,javascript,json,Javascript,Json,也许这个问题已经在某个地方被问到并得到了回答,但在搜索了3个多小时后,我提出了这个问题 下面是我的JSON数据 var my_data = [ { "TempRture_qc": 4, "VoltAGE": 44.09722, "TempRture": 22.32, "VoltAGE_qc": 55, "_time": "2018-08-07T03:39:29.001Z" }, {
var my_data = [
{
"TempRture_qc": 4,
"VoltAGE": 44.09722,
"TempRture": 22.32,
"VoltAGE_qc": 55,
"_time": "2018-08-07T03:39:29.001Z"
},
{
"TempRture_qc": 2,
"VoltAGE": 42.09722,
"TempRture": 22.12,
"VoltAGE_qc": 0,
"_time": "2018-08-07T03:39:30.006Z"
},
{
"TempRture_qc": 1,
"VoltAGE": 43.09722,
"TempRture": 22.82,
"VoltAGE_qc": 0,
"_time": "2018-08-07T03:39:31.009Z"
}
];
我需要的所需输出
[
{
"name": "TempRture_qc",
"data": [
{"name":"2018-08-07T03:39:29.001Z","y":4},
{"name":"2018-08-07T03:39:30.006Z","y":2},
{"name":"2018-08-07T03:39:33.017Z","y":1}
]
},
{
"name": "VoltAGE",
"data": [
{"name":"2018-08-07T03:39:29.001Z","y":44.09722},
{"name":"2018-08-07T03:39:30.006Z","y":42.09722},
{"name":"2018-08-07T03:39:33.017Z","y":43.09722}
]
},
{
"name": "TempRture",
"data": [
{"name":"2018-08-07T03:39:29.001Z","y":22.32},
{"name":"2018-08-07T03:39:30.006Z","y":22.12},
{"name":"2018-08-07T03:39:33.017Z","y":22.82}
]
},
{
"name": "VoltAGE_qc",
"data": [
{"name":"2018-08-07T03:39:29.001Z","y":55},
{"name":"2018-08-07T03:39:30.006Z","y":0},
{"name":"2018-08-07T03:39:33.017Z","y":0}
]
}
]
为了得到上面的输出,我尝试了下面的代码
var accounting = [];
var fieldName = {};
for (var x in obj){
var mykey = Object.keys(obj[x]);
for (var mk in mykey){
if(mykey[mk]=='VoltAGE'){
fieldName.name = mykey[mk];
// accounting.push({
// "name":mykey[mk]
// })
}
if(mykey[mk]=='TempRture'){
fieldName.name = mykey[mk];
}
// console.log(mykey[mk]); //to get the key name
}
accounting.push({
"name" : obj[x]._time,
"y" : obj[x][employees.name],
})
fieldName.data = accounting;
}
console.log(fieldName );
通过这样做,我得到的是低于JSON的
{ name: 'TempRture',
data:
[ { name: '2018-08-07T03:39:29.001Z', y: 22.32 },
{ name: '2018-08-07T03:39:32.014Z', y: 22.12 },
{ name: '2018-08-07T03:39:33.017Z', y: 22.82 } ] }
我无法理解如何在一个JSON对象中获取数据。对于时间复杂度较低的解决方案,请尝试
。减少插入由内部对象的键索引的对象,如果累加器中还不存在该键,则在该键处创建{name,data:[]}
。然后,按下数据
数组,获得整个对象的值:
var my_data=[{“TempRture_qc”:4,“VoltAGE”:44.09722,“TempRture”:22.32,“VoltAGE_qc”:55,“时间”:“2018-08-07T03:39:29.001Z”},{“TempRture_qc”:2,“VoltAGE”:42.09722,“TempRture”:22.12,“VoltAGE_qc”:0,“时间”:“2018-08-07T03:39:30.006Z”},{“TempRture_qc”:1,“VoltAGE”:43.09722,“TempRture”:22.82,“VoltAGE”;“VoltAGE"qc”:2018-07308;:098;时间]
console.log(Object.values(
my_data.reduce((a,{u time,…obj})=>{
Object.entries(obj.forEach)([name,val])=>{
如果(!a[name])a[name]={name,数据:[]};
a[name].data.push({name:_-time,y:val});
});
返回a;
}, {})
));
对于时间复杂度较低的解决方案,请尝试。将压缩到由内部对象的键索引的对象中,如果该键在累加器中尚不存在,则在该键处创建{name,data:[]}
。然后,按下数据
数组,获得整个对象的值:
var my_data=[{“TempRture_qc”:4,“VoltAGE”:44.09722,“TempRture”:22.32,“VoltAGE_qc”:55,“时间”:“2018-08-07T03:39:29.001Z”},{“TempRture_qc”:2,“VoltAGE”:42.09722,“TempRture”:22.12,“VoltAGE_qc”:0,“时间”:“2018-08-07T03:39:30.006Z”},{“TempRture_qc”:1,“VoltAGE”:43.09722,“TempRture”:22.82,“VoltAGE”;“VoltAGE"qc”:2018-07308;:098;时间]
console.log(Object.values(
my_data.reduce((a,{u time,…obj})=>{
Object.entries(obj.forEach)([name,val])=>{
如果(!a[name])a[name]={name,数据:[]};
a[name].data.push({name:_-time,y:val});
});
返回a;
}, {})
));代码>
var my_data=[{“TempRture_qc”:4,“VoltAGE”:44.09722,“TempRture”:22.32,“VoltAGE_qc”:55,“时间”:“2018-08-07T03:39:29.001Z”},{“TempRture_qc”:2,“VoltAGE”:42.09722,“TempRture”:22.12,“VoltAGE_qc”:0,“时间”:“2018-08-07T03:39:30.006Z”},{“TempRture_qc”:1,“VoltAGE”:43.09722,“TempRture”:22.82,“VoltAGE”;“VoltAGE"qc”:2018-07308;:098;时间]
var keys=Object.keys(my_数据[0])
var结果=[];
对于(i=0;i({name:val[“_-time”],y:val[keys[i]}));
结果:推送(obj);
}
console.log(结果)
var my_data=[{“TempRture_qc”:4,“VoltAGE”:44.09722,“TempRture”:22.32,“VoltAGE_qc”:55,“时间”:“2018-08-07T03:39:29.001Z”},{“TempRture_qc”:2,“VoltAGE”:42.09722,“TempRture”:22.12,“VoltAGE_qc”:0,“时间”:“2018-08-07T03:39:30.006Z”},{“TempRture_qc”:1,“VoltAGE”:43.09722,“TempRture”:22.82,“VoltAGE”;“VoltAGE"qc”:2018-07308;:098;时间]
var keys=Object.keys(my_数据[0])
var结果=[];
对于(i=0;i({name:val[“_-time”],y:val[keys[i]}));
结果:推送(obj);
}
console.log(result)
将使用map
、findIndex
和forEach
函数提供可理解的答案
var my_data=[{“TempRture_qc”:4,“VoltAGE”:44.09722,“TempRture”:22.32,“VoltAGE_qc”:55,“时间”:“2018-08-07T03:39:29.001Z”},{“TempRture_qc”:2,“VoltAGE”:42.09722,“TempRture”:22.12,“VoltAGE_qc”:0,“时间”:“2018-08-07T03:39:30.006Z”},“VoltAGE”:43.09722,“TempRture”:22.82,“VoltAGE_时间”:“2018-08-07T03:39:31.009Z”},
结果=[];
my_data.map(itm=>{
设keys=Object.keys(itm);
keys.forEach(iitt=>{
如果(iitt!=“u时间”){
let index=result.findIndex(ii=>{
返回ii.name==iitt;
})
如果(索引==-1){
结果:推({
姓名:iitt,
数据:[]
});
结果[result.length-1].data.push({
名称:itm[“_time”],
y:itm[iitt]
})
}否则{
结果[索引].data.push({
名称:itm[“_time”],
y:itm[iitt]
});
}
}
})
})
console.log(result)
将使用map
、findIndex
和forEach
函数提供可理解的答案
var my_data=[{“TempRture_qc”:4,“VoltAGE”:44.09722,“TempRture”:22.32,“VoltAGE_qc”:55,“时间”:“2018-08-07T03:39:29.001Z”},{“TempRture_qc”:2,“VoltAGE”:42.09722,“TempRture”:22.12,“VoltAGE_qc”:0,“时间”:“2018-08-07T03:39:30.006Z”},“VoltAGE”:43.09722,“TempRture”:22.82,“VoltAGE_时间”:2018-08-07T03:39:31.009Z“}”,
结果=[];
my_data.map(itm=>{
设keys=Object.keys(itm);
keys.forEach(iitt=>{
如果(iitt!=“u时间”){
let index=result.findIndex(ii=>{
返回ii.name==iitt;
})
如果(索引==-1){
结果:推({
姓名:iitt,
数据:[]
});
结果[result.length-1].data.push({
名称:itm[“_time”],
y:itm[iitt]
})
}否则{
结果[索引].data.push({
名称:itm[“_time”],
y:itm[iitt]
});
}
}
})
})
console.log(result)
下面是我的josn数据
-不,这是一个javascript对象-你根本没有在代码中以任何形式处理JSON-你在处理普通的javascriptobjects@JaromandaX这是调用api并存储在变量中后我接收的数据。是,但var x={……}
不是JSON-一旦你解析了itokay,你就不会处理JSON了。谢谢你的指导下面是我的josn数据
-不,那是一个javascript对象-你根本不会处理JSON