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

128
Visualizações
Cambio de llaves en una cadena con datos de un json

Tengo una cadena de plantilla que quiero cambiar palabras con {{}} a su alrededor a datos de un nombre similar de un archivo json. Estoy usando el script de aplicaciones de Google para esto.

Ex. Hola, mi nombre es {{Nombre}} {{Apellido}}. --> Hola mi nombre es Sherlock Holmes.

El archivo Json sería:

 [ { 'First Name': 'Sherlock', 'Last Name': 'Holmes' } ]

He intentado usar este código donde la plantilla es la cadena y los datos son el json:

 function fillInTemplateFromObject(template, data) { let template_string = template; // Token replacement template_string = template_string.replace(/{{[^{}]+}}/g, key => { return escapeData_(data[key.replace(/[{}]+/g, "")] || ""); }); return JSON.parse(template_string); } function escapeData_(str) { return str .replace(/[\\]/g, '\\\\') .replace(/[\"]/g, '\\\"') .replace(/[\/]/g, '\\/') .replace(/[\b]/g, '\\b') .replace(/[\f]/g, '\\f') .replace(/[\n]/g, '\\n') .replace(/[\r]/g, '\\r') .replace(/[\t]/g, '\\t'); };

Pero simplemente elimina los frenos en lugar de reemplazarlos. ex. Hola, mi nombre es .

Cualquier ayuda sería apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Dado que su variable data es un diccionario dentro de una matriz, hacer referencia a data[key.replace(/[{}]+/g, "")] devuelve undefined . Esto se puede remediar ingresando lo siguiente para su variable de data .

 { 'First Name': 'Sherlock', 'Last Name': 'Holmes' }

Además, no es necesario analizar template_string .

 function fillInTemplateFromObject(template, data) { let template_string = template; // Token replacement template_string = template_string.replace(/{{[^{}]+}}/g, key => { return escapeData_(data[key.replace(/[{}]+/g, "")] || ""); }); return template_string; } function escapeData_(str) { return str .replace(/[\\]/g, '\\\\') .replace(/[\"]/g, '\\\"') .replace(/[\/]/g, '\\/') .replace(/[\b]/g, '\\b') .replace(/[\f]/g, '\\f') .replace(/[\n]/g, '\\n') .replace(/[\r]/g, '\\r') .replace(/[\t]/g, '\\t'); };
about 4 years ago · Juan Pablo Isaza 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