繁体   English   中英

JavaScript在2D数组中存储JSON

[英]JavaScript storing JSON in 2D array

我尝试将JSON数据存储在2D数组中,其格式为:

[2009-01,324, 1075, 940, 441, 1040, 898, 1343]
[2009-02 295, 958, 904, 434, 1038, 793, 1246 ]

上面表示法视觉表示的歉意。 我有JSON数据,并且正在使用for循环来获取键及其值,但是我不确定如何将其存储在2d数组中。 从概念上讲,我正在为此而苦苦挣扎。 我是一个初学者,只是真的想要一些指导。 谢谢。

<script>
$.getJSON('data.json', function (data) {

var response = data;

var listOfTimes = new Array();
for(i = 0; i < 2; i++){ //number of rows...
 for(j = 0; j< 8; j++){ //number of columns

 for(key in response){
 ....not sure what to do here 
 }    
 } 
}

});
</script>

JSON数据的格式如下:

"2009-01": {
    "bbcfour": 324,
    "bbcnews24": 1075,
    "bbcone": 940,
    "bbcthree": 441,
    "bbctwo": 1040,
    "cbbc": 898,
    "cbeebies": 1343
  },
  "2009-02": {
    "bbcfour": 295,
    "bbcnews24": 958,
    "bbcone": 904,
    "bbcthree": 434,
    "bbctwo": 1038,
    "cbbc": 793,
    "cbeebies": 1246
  }

尝试遍历所有日期,然后对其属性进行内循环

<script>
    $.getJSON('data.json', function (data) {
        var arr = [];

        for(var date in data){
            var items = [];
            for(var key in date){
                items.push(date[key]);
            }   
            arr.push(items);
        }    

        console.log(arr); // the requested array
    });
</script>
var response = data;

var listOfTimes = new Array();
for(i = 0; i < 2; i++){ //number of rows...
 listOfTimes[i]=response[i];
 for(j = 0; j< 8; j++){ //number of columns
 listOfTimes[i]=repsonse[i][j];   
 } 
}

我认为您正在寻找这个,它将根据您的地图创建一个数组数组。 不知道为什么不能使用数组数据模型。 (注意$ .each,它需要jQuery)

var resp =  {"2009-01": {
    "bbcfour": 324,
    "bbcnews24": 1075,
    "bbcone": 940,
    "bbcthree": 441,
    "bbctwo": 1040,
    "cbbc": 898,
    "cbeebies": 1343
  },
  "2009-02": {
    "bbcfour": 295,
    "bbcnews24": 958,
    "bbcone": 904,
    "bbcthree": 434,
    "bbctwo": 1038,
    "cbbc": 793,
    "cbeebies": 1246
  }};

var arrays = [];
for (mainKey in resp) { 
  var array = []; 
  arrays.push(array);  
  array.push(mainKey); 
  $.each(resp[mainKey], function(key, value) { 
    array.push(value) 
  }); 
};

jsfiddle演示

var mainobj={
  "2009-01": {
    "bbcfour": 324,
    "bbcnews24": 1075,
    "bbcone": 940,
    "bbcthree": 441,
    "bbctwo": 1040,
    "cbbc": 898,
    "cbeebies": 1343
  },
  "2009-02": {
    "bbcfour": 295,
    "bbcnews24": 958,
    "bbcone": 904,
    "bbcthree": 434,
    "bbctwo": 1038,
    "cbbc": 793,
    "cbeebies": 1246
  }
};

var my2darray=[];

for (var date in mainobj) {
   var temparray=[date];
    for(val in mainobj[date]){
        temparray.push(mainobj[date][val]);
    }
   my2darray.push(temparray);
}
console.log(my2darray);

输出:

[["2009-01", 324, 1075, 940, 441, 1040, 898, 1343],
["2009-02", 295, 958, 904, 434, 1038, 793, 1246 ]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM