问题描述
我的JSON文件:
[{"val0":"Paul","val1":"Jake","val2":null,"val3":"Max"},
{"val0":"Sam","val1":"Tina","val2":"Emily","val3":"Hardwell"},
{"val0":"Tom","val1":"Julie","val2":null,"val3":"Adi"}]
我想在javascript中创建一个数组,如下所示:
var dataSet=[
['Paul','Jake','null','Max'],
['Sam','Tina','Emily','Harwell'],
['Tom','Julie','null','Adi']
];
我尝试了以下代码,但它无法正常工作。 有人可以帮忙吗?
$.getJSON("filename.json", function(data) {
var items = [];
$.each(data, function(key, val) {
items.push(val);
});
// …
});
我正在使用这个数组用于显示目的(使用DataTables),因此,我想以该格式创建数组。我使用dataSet数组在DataTables中显示如下:
var dataSet = [
['Paul','Jake','Isha','Mike','null','null','Parth','Tinker'],
['Tina','Michael','null','Blue','Red','','Emily','Mina']
];
$(document).ready(function() {
$('#demo').html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>' );
$('#example').dataTable( {
"data": dataSet,
"columns": [
{ "title": "Name" },
{ "title": "Deadline" },
{ "title": "Additional fees" },
{ "title": "Requirements" },
{ "title": "Field" },
{ "title": "Award" },
{ "title": "Renewable requirements"},
{ "title": "Link" }
]
} );
} );
1楼
没有jquery的解决方案:
var data = [ { "val0": "Paul", "val1": "Jake", "val2": null, "val3": "Max" }, { "val0": "Sam", "val1": "Tina", "val2": "Emily", "val3": "Hardwell" }, { "val0": "Tom", "val1": "Julie", "val2": null, "val3": "Adi" } ], dataSet = data.reduce(function (r, a) { var i, a0 = []; for (i in a) { a0.push(a[i]); } r.push(a0); return r; }, []); document.getElementById('out').innerHTML = JSON.stringify(dataSet, null, 4);
<pre id="out"></pre>
2楼
你得到一个对象数组,并且你想要一个数组数组,所以通过读取对象的属性将每个对象转换为数组:
var items = [];
$.each( data, function( key, val ) {
items.push([val.val0,val.val1,val.val2,val.val3]);
});
3楼
尝试这个
<script>
$(function() {
$.getJSON("filename.json", function(data) {
var items = [];
$.each(data, function(key, val) {
var tmp = [];
for (var Key in val) {
tmp.push(val[Key]);
}
items.push(tmp);
});
console.log(items);
});
});
4楼
一个班轮:
var dataSet = rawData.map(function(e){ return Object.keys(e).map(function(i){ return e[i]}); })
输出:
输出为JSON:
方法说明(来自Javascript参考)
map()
方法创建一个新数组,其结果是在此数组中的每个元素上调用提供的函数。Object.keys()
方法返回给定对象自己的可枚举属性的数组