Conversor YAML para NDJSON (info)
Explica como representar listas YAML como NDJSON (uma linha JSON por item), com exemplos práticos.
Copiado!
Suporta lista de objetos planos (sem aninhamento).
NDJSON (newline-delimited JSON) é um objeto JSON por linha. Para um arquivo YAML do tipo lista:
- nome: Ana\n idade: 30\n- nome: Beto\n idade: 25O equivalente NDJSON é:
{"nome":"Ana","idade":30}\n{"nome":"Beto","idade":25}Use yq ou js-yaml em pipelines para esta conversão.
Lista YAML virando uma linha por registro
Você tem um YAML com uma lista de registros e a próxima ferramenta do pipeline quer NDJSON: um objeto JSON por linha, sem vírgulas no fim e sem colchetes em volta. É o formato que jq, BigQuery e a maioria dos carregadores de log esperam receber. Cole a lista no campo de cima e a conversão sai na hora, uma linha por item, pronta para copiar com o botão ao lado.
O parser aqui é deliberadamente simples e não é um YAML completo. Ele procura linhas que começam com traço para abrir um registro novo e linhas indentadas no formato chave: valor para acrescentar campos ao registro atual. Os valores passam por uma conversão de tipo: true, false, null e o til viram literais, inteiros e decimais com ponto viram números, e aspas simples ou duplas nas pontas são removidas.
Por isso o escopo é lista de objetos planos. Um mapa aninhado não vira objeto aninhado: a chave pai fica com string vazia e os filhos sobem para o mesmo nível, o que é fácil de não perceber. Lista inline como [a, b] continua texto, comentário com dois pontos dentro de um item vira campo, e um arquivo que começa com mapa em vez de traço gera saída vazia. Para arquivos de verdade, yq ou js-yaml. Aqui nada sai do navegador.