Можно ли отключить замену ресурсов в коде?



  • Всем привет. В браузере такая штука работает:

    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 действие "Шаблон", с отключенным преобразованием ресурсов



  • Все равно выдает ошибку. Либо если не ставить галочку, то записывает в переменнуюю просто текст, а не объект.
    0_1563000828197_1.png

    Все данные были обработаны для 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))
    

    0_1563001714369_41d76870-c879-4880-a627-cf5bdad2f57c-изображение.png



  • @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)
    

    0_1563015517931_395be116-fa85-4420-93ba-895d89c4e079-изображение.png

    Тестовый скрипт



  • @fox Спасибо. Я тоже eval пробовал, но не правильно, его значение пытался присвоить.


Log in to reply