Как преобразовать строку в строку шаблона - PullRequest
1 голос
/ 12 июля 2020

Допустим, у меня есть:

 var json = '{"greetings": "`${greetings}`"}';
 var obj = JSON.parse(json);
 var template = obj.greetings; //`${greetings}`

 var greetings = 'hello';

как оценить шаблон, чтобы получить привет?

1 Ответ

0 голосов
/ 12 июля 2020

Поскольку JSON.parse() возвращает obj.greetings как строку, вы можете использовать eval() для запуска строки как js. Так что просто:

var json = '{"greetings": "`${greetings}`"}';
var obj = JSON.parse(json);
var template = eval(obj.greetings); //`${greetings}`

var greetings = 'hello';
console.log(greetings)// hello

Но eval() всегда следует использовать с осторожностью, так как строка может быть введена через ввод пользователя.

Изменить:

Приведенный выше код с eval возвращает undefined. Это связано с тем, что JavaScript Подъем не работает для инициализированной переменной.

Таким образом, нам обязательно нужно переместить инициализацию var greetings = 'hello'; наверх. Решение без eval():

Применить строку шаблона ко всей строке.

var greetings = 'hello';

var json = `{"greetings": "${greetings}"}`;
var obj = JSON.parse(json);
var template = obj.greetings; //`${greetings}`

console.log(template); //hello
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...