Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

127
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!