Estoy creando una aplicación Flask que mostrará una línea de tiempo. Decidí usar vis.js ya que es flexible. Presento la página HTML de mi plantilla y llamo a un punto final de la API usando AJAX GET para recuperar el objeto JSON de los elementos para la línea de tiempo. Quiero representar este objeto JSON en la línea de tiempo, pero simplemente no quiere mostrar el gráfico.
Cualquier ayuda será apreciada.
Mi secuencia de eventos
json.dumps(_list)Objeto JSON devuelto en la llamada AJAX:
[{"id": 1, "content": "My label 1", "start": "2022-05-26T14:18:27Z"}, {"id": 2, "content": "My label 2", "start": "2022-05-26T12:51:20Z"}, {"id": 3, "content": "My label 3", "start": "2022-05-26T12:51:05Z"}]Función de compilación de API Endpoint:
i = 0 _cursor = db.collection.find({}).sort([("timestamp", pymongo.DESCENDING)]) #timestamp is millisec epoch unix time for item in _cursor: _temp_dict['id'] = int(i) _temp_dict['content'] = str(item['name']) _temp_dict['start'] = str(datetime.fromtimestamp(int(item['timestamp'])/1000).strftime('%Y-%m-%dT%H:%M:%SZ')) _temp_list.append(_temp_dict) _temp_dict = {} return json.dumps(_temp_list)Mi llamada AJAX y compilación de la línea de tiempo:
$(document).ready(function() { $.fn.dataTable.ext.errMode = 'none'; $.ajax({ type: 'GET', url : '/api/datamine/timeline', dataType: "json", success:function(data){ console.log("Data: " + data + "\nStatus: " + status); var result = JSON.stringify(data); var container = document.getElementById('visualization'); var items = new vis.DataSet(result); var options = {}; var timeline = new vis.Timeline(container, items, options); } });La línea de tiempo no se construirá. Mi console.log donde imprimo el objeto JSON se ve así.
Data: [object Object],[object Object],[object Object],[object Object],[object Object]