Попытка отправить данные в массив JSON - PullRequest
1 голос
/ 07 июля 2011

Я пытаюсь создать диаграмму Ганта с старшими диаграммами , и мне нужно поместить данные в формате JSON.Я очень близок, но проблема в том, что данные, которые я нажимаю, заключены в кавычки.Я предполагаю, что есть что-то, что я делаю неправильно, но я не могу понять это.

Я могу сказать, что проблема заключается в добавлении кавычек, потому что у меня есть некоторые статические данные, которые прекрасно работают, и я распечатал объект в консоли firebug для статических данных и моих динамических данных.

Итак, вот самая основная из моих опций var:

var options = {
    series : [],
    test : [ {
        data : [ {
        low : Date.UTC(2012, 0, 1),
        y : Date.UTC(2012, 0, 15)
        }, {
        low : Date.UTC(2012, 0, 10),
        y : Date.UTC(2012, 4, 28)
        } ]
    }
}

Затем у меня есть эта функция, которая вызывается во время загрузки:

function loadData() {
    var chartData = $('#hiddenDate').val();
    console.log('hiddenDate = '+chartData);
    var goodData = chartData.split('|');
    console.log('goodData = '+goodData);

    var series = {
        data : []
    };

    try {
        $.each(goodData, function(index, value) {
            var goodData2 = value.split(",");
            var startYear = goodData2[0].substr(0, 4);
            var endYear = goodData2[1].substr(0, 4);
            var startMonth = goodData2[0].substr(5, 2);
            var endMonth = goodData2[1].substr(5, 2);
            var startDay = goodData2[0].substr(8, 2);
            var endDay = goodData2[1].substr(8, 2);
            /*series.data.push({
                low : 'Date.UTC('+startYear+','+startMonth+','+startDay+')',
                y : 'Date.UTC('+endYear+','+endMonth+','+endDay+')'
            });*/
            var start = "{low :  Date.UTC("+startYear+","+startMonth+","+startDay+")";
            var end = "y : Date.UTC("+endYear+","+endMonth+","+endDay+")}";
            series.data.push(start);
            series.data.push(end);
            //series.data.y.push('Date.UTC('+endYear+','+endMonth+','+endDay+')');
            console.log('series.data = '+series.data.toSource());
            console.log('options.test = '+options.test.toSource());
        });

        options.series.push(series);
        console.log('options.series = '+options.series.toSource());
    } catch (err) {
        console.log("ERROR ..." + err.description + '  message:'+ err.message);
    }
}

вывод firebug, где я вижу, что кавычки вызывают проблему для options.series:

series.data = ["{low : Date.UTC(2011,05,27)", "y : Date.UTC(2011,02,17)}", "{low : Date.UTC(2011,07,05)", "y : Date.UTC(2010,12,23)}"]
options.test = [{data:[{low:1325376000000, y:1326585600000}, {low:1326153600000, y:1338163200000}]}]
options.series = [{data:["{low : Date.UTC(2011,05,27)", "y : Date.UTC(2011,02,17)}", "{low : Date.UTC(2011,07,05)", "y : Date.UTC(2010,12,23)}"]}]

1 Ответ

2 голосов
/ 07 июля 2011

не должны ли ваши начальные и конечные переменные быть объектными литералами вместо строк?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...