Tengo una respuesta de un servicio, usando https
rest.on("data", data => { response = JSON.parse(data); });Necesito analizar esta respuesta pero... sé que el resultado final debería ser (lo obtengo con el cartero)...
{ "code": 200, "msg": "", "data": [ { "id": "t4ba", "devData": { "id": "bb2as", "state": "OK" }, "entries": { "2019-05-26T19:03:13.9260000": 15, "2019-05-26T19:03:29.1690000": 26, "2019-05-26T19:04:16.6880000": 65 } }, { "id": "t4ba-2", "devData": { "id": "bb2as", "state": "Underperformance" }, "entries": { "2019-05-26T19:03:13.9260000": 25, "2019-05-26T19:03:29.1690000": 45, "2019-05-26T19:04:16.6880000": 32 } } ], "dateResponse": "2021-03-26T19:04:16.6880000" }Cuando ejecuto JSON.parse (datos)
me sale este error
"errorType": "SyntaxError", "errorMessage": "Fin inesperado de la entrada JSON", "trace": [ "SyntaxError: Fin inesperado de la entrada JSON", " at JSON.parse ()", " at IncomingMessage. (/ var/task/index.js:47:23)", " en IncomingMessage.emit (events.js:315:20)", " en IncomingMessage.EventEmitter.emit (domain.js:467:12)", " en IncomingMessage.Readable.read (internal/streams/readable.js:519:10)", " at flow (internal/streams/readable.js:992:34)", " at resume_ (internal/streams/readable.js: 973:3)", " en processTicksAndRejections (internal/process/task_queues.js:80:21)" ]
Creo que el campo "matriz de datos" es el problema y no sé cómo resolverlo.
Cuando recibo una respuesta con datos vacíos: [], todo funciona bien.
Mmmm... La respuesta es fácil...
Empecemos:::::
Primero, parece que obtienes una gran cantidad de datos de tu servicio...
En respuesta.on("datos"
Los datos no están completos al principio, entonces, .on("datos" "repetirse" desde el inicio hasta el final, entonces sus datos están completos...
código
res.on("data", data => { someVariable += data; });entonces... en tu .on("fin"
rest.on("end", () => { MyJSON = JSON.parse(someVariable); });Eso es todo amigos.