Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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
Javascript 如何从另一种json格式获取一种json对象格式_Javascript_Json - Fatal编程技术网

Javascript 如何从另一种json格式获取一种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" }, {

也许这个问题已经在某个地方被问到并得到了回答,但在搜索了3个多小时后,我提出了这个问题

下面是我的JSON数据

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