Можно ли отключить замену ресурсов в коде?
-
Всем привет. В браузере такая штука работает:
w = window.Params = {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} console.log(w);
и выдает как и должно:
{ WISH_NOTICE: "Congratulations! You've earned." , HAVE: "You now have {{number}} items." }
Но в действии "Выполнить код" пытается заменить {{number}} на ресурс которого нет и быть не должно. И выдает ошибку. Возможно ли как-то это исправить?
-
@mix действие "Шаблон", с отключенным преобразованием ресурсов
-
Все равно выдает ошибку. Либо если не ставить галочку, то записывает в переменнуюю просто текст, а не объект.
Все данные были обработаны для number
-
@mix said in Можно ли отключить замену ресурсов в коде?:
Все равно выдает ошибку. Либо если не ставить галочку, то записывает в переменнуюю просто текст, а не объект.
Все данные были обработаны для number
var window = {} var w = window.Params = {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have \u007b\u007bnumber\u007d\u007d items."} log(JSON.stringify(w))
-
@fox спасибо, а автоматически заменить можно? Я json с одним значением в двойных фигурных скобках для примера написал. На самом деле он на несколько страниц и в каком месте будет значение типа {{number}} не известно. Нужен какой-то способ автоматически отменять замену ресурсов {{}} и переменных [[]]. Такой код уже не работает:
Действие Шаблон:{"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."}
в переменную
W
log([[W]]); [[X]] = [[W]].replace('{{', '\u007b\u007b'); log([[X]]); [[Y]] = JSON.stringify([[X]]); log([[Y]]);
Поток №1 : {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} Поток №1 : {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} Поток №1 : "{\"WISH_NOTICE\":\"Congratulations! You've earned.\",\"HAVE\":\"You now have {{number}} items.\"}"
Если переменную [[X]] обернуть в eval выдает ошибку:
SyntaxError: Parse error
-
@mix said in Можно ли отключить замену ресурсов в коде?:
@fox спасибо, а автоматически заменить можно? Я json с одним значением в двойных фигурных скобках для примера написал. На самом деле он на несколько страниц и в каком месте будет значение типа {{number}} не известно. Нужен какой-то способ автоматически отменять замену ресурсов {{}} и переменных [object Object]. Такой код уже не работает:
Действие Шаблон:{"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."}
в переменную
W
log([[W]]); [[X]] = [[W]].replace('{{', '\u007b\u007b'); log([[X]]); [[Y]] = JSON.stringify([[X]]); log([[Y]]);
Поток №1 : {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} Поток №1 : {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} Поток №1 : "{\"WISH_NOTICE\":\"Congratulations! You've earned.\",\"HAVE\":\"You now have {{number}} items.\"}"
Если переменную [[X]] обернуть в eval выдает ошибку:
SyntaxError: Parse error
А что вы хотите изначально то сделать?
-
@fox Хочу из большого json объекта, представленного в виде текста (string) получить в BAS объект с переменными. Через JSON.parse работает, но если предварительно заменить все двойные скобки на юникод, то выдет строку в виде:
"{\"WISH_NOTICE\":\"Congratulations! You've earned.\",\"HAVE\":\"You now have {{number}} items.\"}"
А хотелось бы получить объект с переменными.
-
@fox А, все, вроде запустил. Такая конструкция выдает как положено объект:
var str = [[W]].replace('{{', '\u007b\u007b'); [[OUT]] = JSON.parse(str); log([[OUT]]);
Спасибо.
-
@fox Что-то на маленьком тексте работает, на большом ни как не хочет. Посмотрите, пожалуйста, что не так делаю. Хочу получить переменные, все что есть в json'е. Вот скрипт.xml
-
@mix Так, а вы посмотрите весь "json" с сайта и поймете, что не так.
-
@mix said in Можно ли отключить замену ресурсов в коде?:
@fox Что-то на маленьком тексте работает, на большом ни как не хочет. Посмотрите, пожалуйста, что не так делаю. Хочу получить переменные, все что есть в json'е. Вот скрипт.xml
Данные лежат уже в готовом виде, проще всего их выполнить через eval()
var window = {} eval([[XPATH_TEXT]]) log(window.runParams.data.actionModule.i18nMap.SC_HAVE)
Тестовый скрипт
-
@fox Спасибо. Я тоже eval пробовал, но не правильно, его значение пытался присвоить.