Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 如何在JQuery中将JSON数据转换为数组?_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何在JQuery中将JSON数据转换为数组?

Javascript 如何在JQuery中将JSON数据转换为数组?,javascript,jquery,json,Javascript,Jquery,Json,我从结果中获取Json数据,如下所示 var chartData1 = [ {\"Action\":\"Twitter\",\"value\":\"1.00\",\"platform\":\"2\"}, {\"Action\":\"WhatsApp\",\"value\":\"1.00\",\"platform\":\"3\"}, {\"Action\":\"Messaging\",\"value\":\"1.00\",\"platform\":\"4\"}

我从结果中获取Json数据,如下所示

   var chartData1 = [
     {\"Action\":\"Twitter\",\"value\":\"1.00\",\"platform\":\"2\"},
     {\"Action\":\"WhatsApp\",\"value\":\"1.00\",\"platform\":\"3\"},
     {\"Action\":\"Messaging\",\"value\":\"1.00\",\"platform\":\"4\"}
     ]
   var chartData2 =  [
    ['Action', 'value', 'platform'],
    ['Twitter', '1.00', 2],
    ['WhatsApp', '1.00', 3],
    ['Messaging', 'WhatsApp', 4],
   ]
我想把它转换成下面的

   var chartData1 = [
     {\"Action\":\"Twitter\",\"value\":\"1.00\",\"platform\":\"2\"},
     {\"Action\":\"WhatsApp\",\"value\":\"1.00\",\"platform\":\"3\"},
     {\"Action\":\"Messaging\",\"value\":\"1.00\",\"platform\":\"4\"}
     ]
   var chartData2 =  [
    ['Action', 'value', 'platform'],
    ['Twitter', '1.00', 2],
    ['WhatsApp', '1.00', 3],
    ['Messaging', 'WhatsApp', 4],
   ]
我使用了不同的方法,如parseJSON、map等,但无法获得预期的结果

Can you help me out from this.

我假设您首先需要解析包含数据的有效JSON字符串,然后将包含对象的每一行转换为数组。并在整个数组前面加上具有列名的数组。下面的代码正好可以做到这一点:

var chartDataString = "[{\"Action\":\"Twitter\",\"value\":\"1.00\",\"platform\":\"2\"},{\"Action\":\"WhatsApp\",\"value\":\"1.00\",\"platform\":\"3\"},{\"Action\":\"Messaging\",\"value\":\"1.00\",\"platform\":\"4\"}]";

var chartData = JSON.parse(chartDataString);

var keys = [];
var data = [];
var row;
for (var i = 0; i < chartData.length; i++) {
    row = [];
    for (var key in chartData[i]) {
        if (i === 0) {
            keys.push(key);   
        }

        row.push(chartData[i][key]);
    }

    if (i === 0) {
        data.push(keys);   
    }

    data.push(row);
}

console.log(data);

以下内容将其转换为数组,前提是它已被解析为对象

var chartData2 = Object.keys(chartData1).map(function(k) { return chartData1[k] });

console.log(chartData2);

这里最理想的方法可能是将原始数组映射到新结构:

var chartData1=[ {操作:Twitter,值:1.00,平台:2}, {操作:WhatsApp,值:1.00,平台:3}, {操作:消息传递,值:1.00,平台:4} ]; var结果=chartData1.mapfunctionel{ 返回[el.Action,el.value,el.platform]; }; 结果.取消移位['Action'、'value'、'platform'];
alertJSON.stringifyresult,null,4;你能从你的数据中删除垃圾吗?