Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
从JSON文件在JavaScript中创建数组_Javascript_Arrays_Json - Fatal编程技术网

从JSON文件在JavaScript中创建数组

从JSON文件在JavaScript中创建数组,javascript,arrays,json,Javascript,Arrays,Json,我的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','nul

我的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']
];
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" }
        ]
    } );
} );
我尝试了以下代码,但不起作用。有人能帮忙吗

$.getJSON("filename.json", function(data) {
  var items = [];
  $.each(data, function(key, val) {
    items.push(val);
  });
  // …
});
我将此数组用于显示目的(使用DataTables),因此,我希望以该格式创建数组。我将使用dataSet数组在DataTables中显示,如下所示:

var dataSet=[
  ['Paul','Jake','null','Max'],
  ['Sam','Tina','Emily','Harwell'],
  ['Tom','Julie','null','Adi']
];
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" }
        ]
    } );
} );
var数据集=[
['Paul'、'Jake'、'Isha'、'Mike'、'null'、'null'、'Parth'、'Tinker'],
[“蒂娜”,“迈克尔”,“空”,“蓝色”,“红色”,“艾米丽”,“米娜”]
];
$(文档).ready(函数(){
$('#demo').html('');
$('#示例')。数据表({
“数据”:数据集,
“栏目”:[
{“标题”:“名称”},
{“标题”:“截止日期”},
{“标题”:“附加费用”},
{“标题”:“要求”},
{“标题”:“字段”},
{“标题”:“奖励”},
{“标题”:“可再生要求”},
{“标题”:“链接”}
]
} );
} );

您得到一个对象数组,并且您想要一个数组数组,因此通过读取对象的属性将每个对象转换为一个数组:

var items = [];
$.each( data, function( key, val ) {
  items.push([val.val0,val.val1,val.val2,val.val3]);
});
试试这个

<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);
    });

  });

$(函数(){
$.getJSON(“filename.json”),函数(数据){
var项目=[];
$。每个(数据、函数(键、值){
var tmp=[];
for(var中的var键){
tmp.push(val[键]);
}
项目推送(tmp);
});
控制台日志(项目);
});
});
没有jquery的解决方案:
var数据=[
{“val0”:“Paul”,“val1”:“Jake”,“val2”:null,“val3”:“Max”},
{“val0”:“Sam”,“val1”:“Tina”,“val2”:“Emily”,“val3”:“Hardwell”},
{“val0”:“Tom”,“val1”:“Julie”,“val2”:null,“val3”:“Adi”}
],
数据集=数据.reduce(函数(r,a){
风险值i,a0=[];
为了(我在a){
a0.推力(a[i]);
}
r、 推力(a0);
返回r;
}, []);
document.getElementById('out').innerHTML=JSON.stringify(dataSet,null,4)
一个衬里: 输出:

输出为JSON:

方法说明(来自Javascript参考)
  • map()

  • Object.keys()
    方法返回给定对象自身可枚举属性的数组


  • 文件是否从服务器上运行?请尝试在
    文件名.json
    前面输入
    /
    。请指定您收到的错误消息或输出。您如何处理
    ?你有没有在任何地方还过它?还是扔掉它?html文件没有显示任何内容,我没有收到任何错误消息。我还将该数组传递给其他函数。我尝试了上面的代码,但它没有在DataTables中显示任何内容。您能给我一些建议吗?我想显示JSON文件中的内容,这是我用于DataTables的代码,如果我以上述格式提供数据集数组,则可以工作,但我想以相同的格式从JSON文件创建该数组。@Swap,这与所需的输出匹配吗?