Javascript 如何将RESTAPI json映射到首选数组格式
我使用AJAX将查询发布到RESTAPI是成功的Javascript 如何将RESTAPI json映射到首选数组格式,javascript,jquery,json,Javascript,Jquery,Json,我使用AJAX将查询发布到RESTAPI是成功的 $.ajax({ url: 'http://urL', data: JSON.stringify(My_query), dataType: 'json', method: 'post', success: function(response) { console.log(response // ] error: function(req
$.ajax({
url: 'http://urL',
data: JSON.stringify(My_query),
dataType: 'json',
method: 'post',
success: function(response) {
console.log(response
//
]
error: function(req, status, err) {
window.alert('Error. Take a look at console.')
console.log('error', status, err);
}
});
基于上面的帖子,我在控制台中获得了JSON
{
"queries": [{
"sample_size": 32,
"results": [{
"name": "NAME",
"group_by": [{
"name": "tag",
"tags": ["model_A"],
"group": {
"model_A": "000000000"
}
}, {
"name": "type",
"type": "number"
}],
"values": [
[1445998669000, 0],
[1446000472000, 0],
]
}, {
"name": "NAME",
"group_by": [{
"name": "tag",
"tags": ["smodel_A"],
"group": {
"model_A": "111111111"
}
}, {
"name": "type",
"type": "number"
}],
"values": [
[1445998669000, 1],
[1446000472000, 1],
]
}, {
"name": "NAME",
"group_by": [{
"name": "tag",
"tags": ["model_A"],
"group": {
"model_A": "222222222"
}
}, {
"name": "type",
"type": "number"
}],
"values": [
[1445998669000, 0],
[1446000472000, 0],
]
}, {
"name": "NAME",
"group_by": [{
"name": "tag",
"tags": ["model_A"],
"group": {
"model_A": "3333333333"
}
}, {
"name": "type",
"type": "number"
}],
"values": [
[1445998669000, 0],
[1446000472000, 0],
]
}]
}]
}
现在,如何使用Jquery重新格式化JSON以获得以下结构
"values": [
[111111111, 1445998669000, 0],
[111111111,1446000472000, 0],
[222222222,1445998669000, 1],
[222222222,1446000472000, 1],
[333333333,1445998669000, 0],
[333333333, 1446000472000, 0],
[444444444, 1445998669000, 0],
[444444444, 1446000472000, 0]
]
先谢谢你 试试以下方法:
values = [];
$.each(response.queries[0].results,function(i,v){
values.push([v.group_by[0].group.model_A,v.values[0][0],v.values[0][1]]);
values.push([v.group_by[0].group.model_A,v.values[1][0],v.values[1][1]]);
});
json = {'values' :values};
jsiddle:尝试以下方法:
values = [];
$.each(response.queries[0].results,function(i,v){
values.push([v.group_by[0].group.model_A,v.values[0][0],v.values[0][1]]);
values.push([v.group_by[0].group.model_A,v.values[1][0],v.values[1][1]]);
});
json = {'values' :values};
jsfiddle:这可能会有所帮助
var values = [];
$.each(response.queries[0].results,function(i,v){
if(i != 0){
var v_ = response.queries[0].results[i-1];
values.push([v.group_by[0].group.model_A,v_.values[0][0],v_.values[0][1]]);
values.push([v.group_by[0].group.model_A,v_.values[1][0],v_.values[1][1]]);
}
});
console.log(values);
这可能会有帮助
var values = [];
$.each(response.queries[0].results,function(i,v){
if(i != 0){
var v_ = response.queries[0].results[i-1];
values.push([v.group_by[0].group.model_A,v_.values[0][0],v_.values[0][1]]);
values.push([v.group_by[0].group.model_A,v_.values[1][0],v_.values[1][1]]);
}
});
console.log(values);
将此代码片段复制到html文件中,在Chrome中进一步调试。将“jquery-1.8.3.js”保存在您工作的同一文件夹中。别忘了将JSON字符串主数据分配到开头声明的mstdta变量中
$(document).ready(function() {
//var mstdta=ASSIGN YOUR DATA STRING
var myData = JSON.parse(mstdta);
var resultArr = new Array();
$.each(myData, function (key, value) {
if (key = "queries") {
var resultObj = value;
for (var key in resultObj) {
if (resultObj.hasOwnProperty(key)) {
//console.log(key + " = " + Object.keys( resultObj[key] ));
if (resultObj[key].hasOwnProperty("results")) {
for (var i in resultObj[key].results) {
var arrObj = resultObj[key].results[i];
var x, y1, y2, z1, z2;
if (arrObj.hasOwnProperty("group_by")) {
var x = arrObj.group_by[0].group.model_A;
}
if (arrObj.hasOwnProperty("values")) {
y1 = arrObj.values[0][0];
y2 = arrObj.values[0][1];
z1 = arrObj.values[1][0];
z2 = arrObj.values[1][1];
}
var tempArr1 = [x, y1, y2];
var tempArr2 = [x, z1, z2];
resultArr.push(tempArr1);
resultArr.push(tempArr2);
}
}
}
}
}
});
console.log(resultArr);
});
将此代码片段复制到html文件中,在Chrome中进一步调试。将“jquery-1.8.3.js”保存在您工作的同一文件夹中。别忘了将JSON字符串主数据分配到开头声明的mstdta变量中
$(document).ready(function() {
//var mstdta=ASSIGN YOUR DATA STRING
var myData = JSON.parse(mstdta);
var resultArr = new Array();
$.each(myData, function (key, value) {
if (key = "queries") {
var resultObj = value;
for (var key in resultObj) {
if (resultObj.hasOwnProperty(key)) {
//console.log(key + " = " + Object.keys( resultObj[key] ));
if (resultObj[key].hasOwnProperty("results")) {
for (var i in resultObj[key].results) {
var arrObj = resultObj[key].results[i];
var x, y1, y2, z1, z2;
if (arrObj.hasOwnProperty("group_by")) {
var x = arrObj.group_by[0].group.model_A;
}
if (arrObj.hasOwnProperty("values")) {
y1 = arrObj.values[0][0];
y2 = arrObj.values[0][1];
z1 = arrObj.values[1][0];
z2 = arrObj.values[1][1];
}
var tempArr1 = [x, y1, y2];
var tempArr2 = [x, z1, z2];
resultArr.push(tempArr1);
resultArr.push(tempArr2);
}
}
}
}
}
});
console.log(resultArr);
});
Arun,将abour代码片段复制到html文件中,在chrome中进一步调试。将“jquery-1.8.3.js”保存在您工作的同一文件夹中。别忘了将JSON字符串主数据分配到mstdta变量中,该变量在BeginingRun中声明,将abour代码片段复制到html文件中,在chrome中进一步调试。将“jquery-1.8.3.js”保存在您工作的同一文件夹中。别忘了将JSON字符串主数据分配到开头声明的mstdta变量中