将json传递给javascript数组

时间:2015-02-18 08:57:21

标签: javascript jquery json

我有一个像这样的JSON文件

[{"excursionDay":"2"},{"excursionDay":"3"},{"excursionDay":"4"}]

我想将excursionDay的值传递给javascript中的数组,如此

  dayValues = [2,3,4]

到目前为止,我的javascript代码如下

fucntion excursionDates(date){
var day = date.getDay();
   var dayValues = [];
   $.get('json.php',function(data){
       for(var i=0; i<data.length;i++){
           dayValues.push(data[i].excursionDay);
       }
   },'json');
 }

但由于某种原因,我无法完成这项工作。 当我点击jquery-ui datepicker并仅启用特定日期时,我想触发以上所有内容。 datepicker的代码是bollow。

$("#excursionDate").datepicker({
        minDate: today,
        dateFormat: 'dd-mm-yy',
        beforeShowDay: excursionDates
});

有人可以帮帮我吗?

8 个答案:

答案 0 :(得分:0)

试试这个:

data.forEach( function(element){
   dayValues.push(element.excursionDay);
})

console.log(dayValues); // outputs ["2", "3", "4"]

答案 1 :(得分:0)

这看起来像是Array.map的完美用例:

var startArray = [{"excursionDay":"2"},{"excursionDay":"3"},{"excursionDay":"4"}];

var dayValues = startArray.map(function(item){
                    return item.excursionDay
                });

//dayValues is now ["2","3","4"]

More info on Array.prototype.map

答案 2 :(得分:0)

发布的代码按顺序显示,但我怀疑您没有使用application/json回复,而是text/html

确保您在json.php中执行以下操作。

header('Content-Type: application/json');

答案 3 :(得分:0)

Hay我建议你使用underscore.js

方法

_.values(object) 

它返回数组中对象的所有值。

_.values({one: 1, two: 2, three: 3});
result: [1, 2, 3]

答案 4 :(得分:0)

这可以在JavaScript中轻松完成:

var jsArray = [];
var p = [{"excursionDay":"2"},{"excursionDay":"3"},{"excursionDay":"4"}];
for( var i = 0; i < p.length; i++) {
    jsArray.push(p[i].excursionDay);
}

console.log(jsArray);

jsFiddle

答案 5 :(得分:0)

试试这个 - 使用 .push() 将记录插入array

&#13;
&#13;
var dataArray=[{"excursionDay":"2"},{"excursionDay":"3"},{"excursionDay":"4"}];
dayValuesArray = [];
 for(var i=0; i<dataArray.length;i++){
        dayValuesArray.push(dataArray[i].excursionDay);
    }
alert(dayValuesArray);
&#13;
&#13;
&#13;

答案 6 :(得分:0)

尝试以下代码。

var jsonString ='[{"excursionDay":"2"},{"excursionDay":"3"},"excursionDay":"4"}]';

var obj = $.parseJSON(jsonString);    
var dayValues = [];
for (var i = 0, len = obj.length; i < len; i++){
    dayValues.push(obj[i].excursionDay);
}
console.log(JSON.stringify(obj));

答案 7 :(得分:0)

代码的数组部分应该可以正常工作。但是,datepicker调用不是。

我想你应该使用.beforeShow()方法(http://api.jqueryui.com/datepicker/#option-beforeShow),它会比每天之前迭代的.beforeShowDay()更好。

$("#excursionDate").datepicker({
        minDate: today,
        dateFormat: 'dd-mm-yy',
        beforeShow: excursionDates
});