Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

249
Visualizações
¿Cómo formatear los resultados del registrador de datos como JSON?

Tengo un registrador de datos que registra el tiempo, el estado y la temperatura al agregarlo a un archivo. (El registrador se llama desde un trabajo cron.)

Sería genial si pudiera leer los datos en un script de página web como JSON, pero no veo una buena manera de hacerlo: mi registrador es más complicado o mi lector es más complicado.

Mis datos son líneas como:

 [ timestamp, "status", temperature ] [ 123456789, "sync", 12345]

Puedo agregar comas a los extremos de la línea con bastante facilidad, pero de cualquier manera, no es un JSON bien formateado: necesita corchetes alrededor de todo.

Entonces, mi registrador debe detectar un archivo de datos vacío y agregar un corchete inicial, además de buscar hasta el final, hacer una copia de seguridad de un carácter, reemplazar el último corchete de cierre con una coma y luego agregar su propio registro con un corchete de cierre adicional, o el lector tiene que masajear el pre-JSON cortando una coma final y agregando corchetes alrededor.

¿Hay una manera más fácil de hacer esto?

about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

El formato que está utilizando es similar, está establecido y es excelente para iniciar sesión: consulte Líneas JSON y ndjson .

Al dividir su entrada después de la primera línea, se quedará con las líneas JSON. Luego, solo necesita iterar las líneas y analizar cada línea (opcionalmente, recopilarlas en una matriz si lo desea).

Aquí hay un ejemplo:

 const LF = '\n'; function iterateJSONLines (jsonl, cb) { for (const line of jsonl.trim().split(LF)) { cb(JSON.parse(line)); } } /** handle the first (non-JSON) line in your input */ function separateHeaderFromJSONLines (input) { for (let i = 0; i < input.length; i += 1) { if (input[i] !== LF) continue; return [input.slice(0, i).trim(), input.slice(i + 1)]; } } function main (input) { const [headerLine, jsonl] = separateHeaderFromJSONLines(input); const arr = []; iterateJSONLines(jsonl, arr.push.bind(arr)); console.log(headerLine); console.log(arr); } const input = `[ timestamp, "status", temperature ] [ 123456789, "sync", 12345] [ 987654321, "anotherStatus", 54321] `; main(input);

about 4 years ago · Santiago Gelvez Relatório

0

Puedes hacerlo

usaría fetch

 const str = `[ timestamp, "status", temperature ] [ 123456789, "sync", 12345]` const data = str.split(/\r?\n/) // line feed .map(line => line .replace(/[\[\]]/g,"") // remove square brackets (can be done in the regex below too .match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g) // find stuff with or without quotes .map(elem => isNaN(elem) ? elem : +elem) // convert numbers back to numbers ); console.log(data)

about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda