JSON работает, только если копировать код буквально, сгенерированный код не работает, почему? - PullRequest
0 голосов
/ 10 января 2020

У меня следующий код;

var fechas = "";
for (i = 0; i < response.data.length; i++) {
    var fechas = fechas + "{\"text\":" + "\"" + response.data[i].ADP_Asunto + "\"" + ", \"startDate\": new Date (" + response.data[i].ADP_FechaInicio.substring(0, 4) + "," + (response.data[i].ADP_FechaInicio.substring(5, 7) - 1) + "," + response.data[i].ADP_FechaInicio.substring(8, 10) + "), \"endDate\": new Date(" + response.data[i].ADP_FechaFin.substring(0, 4) + "," + (response.data[i].ADP_FechaFin.substring(5, 7) - 1) + "," + response.data[i].ADP_FechaFin.substring(8, 10) +",23,59)},";
}
fechas = fechas.substring(0, fechas.length - 1) + "";
var completo = "[" + fechas + "]";
console.log(completo);

 $("#scheduler").dxScheduler({
                                    dataSource: JSON.parse(completo);,
........................................................

И не работает, но если я скопирую выходные данные console.log и присваиваю значение «data», а затем добавлю ссылку на источник данных, он отлично работает;

 var fechas = "";
                            for (i = 0; i < response.data.length; i++) {
                                var fechas = fechas + "{\"text\":" + "\"" + response.data[i].ADP_Asunto + "\"" + ", \"startDate\": new Date (" + response.data[i].ADP_FechaInicio.substring(0, 4) + "," + (response.data[i].ADP_FechaInicio.substring(5, 7) - 1) + "," + response.data[i].ADP_FechaInicio.substring(8, 10) + "), \"endDate\": new Date(" + response.data[i].ADP_FechaFin.substring(0, 4) + "," + (response.data[i].ADP_FechaFin.substring(5, 7) - 1) + "," + response.data[i].ADP_FechaFin.substring(8, 10) +",23,59)},";
                            }
                            fechas = fechas.substring(0, fechas.length - 1) + "";
                            var completo = "[" + fechas + "]";
                            console.log(completo);

                            var data = [{ "text": "ASUNTO NUEVO2", "startDate": new Date(2020, 0, 01), "endDate": new Date(2020, 0, 01, 23, 59) }, { "text": "ASUNTO NUEVO2", "startDate": new Date(2020, 0, 25), "endDate": new Date(2020, 0, 28, 23, 59) }, { "text": "Asunto nuevo Bo", "startDate": new Date(2020, 11, 31), "endDate": new Date(2020, 11, 31, 23, 59) }];  //   console.log(data);

                            $("#scheduler").dxScheduler({
                                dataSource: data,

Я пробовал jsons.parse / stringify, "[" + ... + "]" ... и ничего не работает

1 Ответ

0 голосов
/ 13 января 2020

Наконец я понял! со следующим кодом;

   var fechas = "";
for (i = 0; i < response.data.length; i++) {
    var fechas = fechas + "{'text':" + "'" + response.data[i].ADP_Asunto + "'" + ", 'startDate': '" + response.data[i].ADP_FechaInicio.substring(0, 4) + "-" + response.data[i].ADP_FechaInicio.substring(5, 7) + "-" + response.data[i].ADP_FechaInicio.substring(8, 10) + "', 'endDate':'" + response.data[i].ADP_FechaFin.substring(0, 4) + "-" + (response.data[i].ADP_FechaFin.substring(5, 7)) + "-" + response.data[i].ADP_FechaFin.substring(8, 10) + "'},";
}
fechas = fechas.substring(0, fechas.length - 1) + "";
var completo = "[" + fechas + "]";
var myObject = eval('(' + completo + ')');
console.log(myObject);

$("#scheduler").dxScheduler({
    dataSource: myObject,
...