2016-08-02 125 views
0

我工作Bootstrap calendar,我一直试图让我的数组是这样的:JavaScript数组和JSON

{ 
"success": 1, 
"result": [ 
    { 
     "id": "293", 
     "title": "This is warning class event with very long title to check how it fits to evet in day view", 
     "url": "http://www.example.com/", 
     "class": "event-warning", 
     "start": "1362938400000", 
     "end": "1363197686300" 
    }, 
    { 
     "id": "256", 
     "title": "Event that ends on timeline", 
     "url": "http://www.example.com/", 
     "class": "event-warning", 
     "start": "1363155300000", 
     "end": "1363227600000" 
    }, 
    { 
     "id": "276", 
     "title": "Short day event", 
     "url": "http://www.example.com/", 
     "class": "event-success", 
     "start": "1363245600000", 
     "end": "1363252200000" 
    }, 
    { 
     "id": "294", 
     "title": "This is information class ", 
     "url": "http://www.example.com/", 
     "class": "event-info", 
     "start": "1363111200000", 
     "end": "1363284086400" 
    } 
] } 

但我试过,得到了这样的事情:

[ 
    { 
     "success":1 
    }, 
    { 
     "result":[ 
     { 
      "id":"1", 
      "title":"dev", 
      "url":"www.example.com", 
      "class":"event-success", 
      "start":"0", 
      "end":"0" 
     }, 
     { 
      "id":"2", 
      "title":"Holiday", 
      "url":"www.example.com", 
      "class":"event-success", 
      "start":"0", 
      "end":"0" 
     }, 
     { 
      "id":"3", 
      "title":"Coding...", 
      "url":"www.example.com", 
      "class":"event-success", 
      "start":"0", 
      "end":"0" 
     }, 
     { 
      "id":"4", 
      "title":"data", 
      "url":"www.example.com", 
      "class":"event-success", 
      "start":"0", 
      "end":"0" 
     } 
     ] 
    } 
] 

和我的代码来创建这些混乱是

 var result = []; 
    for(i=0; i<rows.length; i++) { 
    var result_single = {id:rows[i].uid, title:rows[i].name, url:"www.example.com", class:"event-success", start:rows[i].startdate, end:rows[i].enddate}; 
    result.push(result_single); 
    } 
    var output = new Array(); 
    output.push(data); 
    result = {result:result}; 
    output.push(result); 
    console.log(JSON.stringify(output)); 

说实话,我不太明白数组中的JS是如何工作的。有人可以指出我是怎么出错的?

回答

0

您的预期结果是一个包含2个属性的对象,但是您会得到一个包含两个对象的数组。我想你想要的第一个结果是两个属性的对象。

var result = []; 
 
var rows = [1,2,3,4,5]; 
 

 
for(i=0; i<rows.length; i++) { 
 
    var result_single = {id:rows[i], title:rows[i], url:"www.example.com", class:"event-success",         start:rows[i].startdate, end:rows[i].enddate}; 
 
    result.push(result_single); 
 
} 
 
    
 
var output = { 
 
    success: 1, 
 
    result: result 
 
} 
 
     
 
console.log(JSON.stringify(output));

+0

哦,现在我明白了,谢谢你。 –