Как экранировать символы и в то же время помещать переменные в Json - Javascript - PullRequest
0 голосов
/ 28 февраля 2019

Я использую nodejs для AWS SES, но моя проблема с json, я не могу заставить его работать с переменными и в то же время использовать символы:

Мой код:

const EmailUsingTemplate1 = {
                    "Source": dataForm.email_sender,
                    "Template": "EntranceVisitInReception",
                    "Destination": {
                        "ToAddresses": [ dataForm.friend_email
                                        ]
                    },
                    "TemplateData": "{ \"condominium\":\"Las brisas\", \"visitor_name\": \"alligator\", \"user_name\": \"izzy\", \"date\": \"12 de febrero\", \"time\": \"18:00\"  }"
    }

Где dataForm.email_sender является переменной и работает нормально, но в TemplateData есть проблема, я не могу заставить его работать с переменными, я хочу заменить "Las brisas", "alligator", "izzy",«12 февраля», «18:00» , с переменными, такими как dataForm.condominium, dataForm.visitor_name, dataForm.user_name, dataForm.date и dataForm.time , можете ли вы помочь мне счто?

Большое спасибо.

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Попробуйте использовать литералы шаблона ...

const dataForm = { condominium: "Las brisas" };

const EmailUsingTemplate1 = {
  Source: dataForm.email_sender,
  Template: "EntranceVisitInReception",
  Destination: {
    ToAddresses: [ dataForm.friend_email ]
  },
  TemplateData: `{ "condominium":"${dataForm.condominium}", "visitor_name": "alligator", "user_name": "izzy", "date": "12 de febrero", "time": "18:00" }`
}

console.log(EmailUsingTemplate1);
0 голосов
/ 01 марта 2019

Ну, ответ @neurotik был немного странным, но не работал, пока я не сделал это:

const EmailUsingTemplate1 = {
                    "Source": dataForm.email_sender,
                    "Template": "EntranceVisitInReception",
                    "Destination": {
                        "ToAddresses": [ dataForm.friend_email
                                        ]
                    },
                    "TemplateData": `{ "condominium":"${dataForm.condominium}", "visitor_name": "${dataForm.visitor_name}", "user_name": "${dataForm.user_name}", "date": "${dataForm.date}", "time": "${dataForm.time}" }`
                }

Небольшие различия, я знаю, но это работало хорошо.Спасибо всем.

0 голосов
/ 28 февраля 2019

Обратите внимание EmailUsingTemplate1 ключ TemplateData является строкой.Если я правильно понимаю, вам нужно обновить TemplateData значения, которые вам понадобятся для первого разбора строки JSON.

const TemplateDataObject = JSON.parse(EmailUsingTemplate1.TemplateData);

// Update some values
TemplateDataObject.condominium = dataForm.condominium;
TemplateDataObject.visitor_name = dataForm. visitor_name;
// ...etc

// Store in same format back in the original object
EmailUsingTemplate1.TemplateData = JSON.stringify(TemplateDataObject);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...