Tengo una matriz anidada, luciendo así:
{ "id": 1, "QUALITY": 91.98, "TEMPERATURE": 20.5, "SENSOR_DATE": "2021-09-24T04:53:06.801Z", "SOURCE_ID": 1, "SENSOR_NAME": "TD2", "NEXT_OFFSET": 11931 },Quiero cambiar esta cadena
"QUALITY": 91.98, "TEMPERATURE": 20.5,a esto:
{ "data": [ { "TELEMATICS": { "QUALITY": 91.98, "TEMPERATURE": 20.5 }, "SOURCE_ID": "1", "SENSOR_NAME": "TD2", "SENSOR__DATETIME": "2021-09-24T04:53:06.801Z" }, ], "NEXT_OFFSET": 11931 }Hice muchos intentos diferentes, pero todo lo que pude obtener como resultado de este código es:
var telematics = JSON.parse(JSON.stringify(payload, ['QUALITY', 'TEMPERATURE'])); var data = JSON.parse(JSON.stringify(payload, ['SOURCE_ID', 'SENSOR_NAME', 'SENSO$ payload = JSON.parse(JSON.stringify({TELEMATICS: telematics, data}, null, 2)); payload = JSON.stringify({data: payload}, null, 2);Como resultado, obtengo dos objetos diferentes. No puedo combinarlos en uno, con una matriz TELEMÁTICA anidada:
{ "QUALITY": 91.33, "TEMPERATURE": 25.7 } ], "data": [ { "SOURCE_COMPONENT_ID": 1, "SENSOR_NAME": "TD2", "SENSOR_READING_DATETIME": "2021-09-24T04:53:06.801Z" },Dijiste que tienes una matriz: el primer elemento que se muestra es un objeto, ¿quizás sea un elemento de esa matriz? Supongamos que sí, que la payload es una matriz de dichos objetos.
Está intentando crear una matriz de "datos" en el interior, con un elemento. ¿Es eso necesario? ¿Podría tener más de un elemento? Supongamos que solo tiene un elemento por ahora.
const payload = [{ "id": 1, "QUALITY": 91.98, "TEMPERATURE": 20.5, "SENSOR_DATE": "2021-09-24T04:53:06.801Z", "SOURCE_ID": 1, "SENSOR_NAME": "TD2", "NEXT_OFFSET": 11931 }, { "id": 2, "QUALITY": 91.98, "TEMPERATURE": 20.5, "SENSOR_DATE": "2021-09-24T04:53:06.801Z", "SOURCE_ID": 1, "SENSOR_NAME": "TD2", "NEXT_OFFSET": 11931 }]; const result = payload.map(({QUALITY, TEMPERATURE, NEXT_OFFSET, ...rest})=> ({ data: [{ ...rest, TELEMATICS: { QUALITY, TEMPERATURE } }], NEXT_OFFSET })); console.log(result);