Поскольку 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