Javascript 如何将RESTAPI json映射到首选数组格式

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将查询发布到RESTAPI是成功的

$.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变量中