фонПередача списка AppleScript для яваскрипта ExtendScript как массив для Indesign
У меня есть груз AppleScripts (AS), который дизайнеры используют с InDesign, которые помогают процессу рабочий процесс производства. Существует много взаимодействия с ОС, которое AS делает, что JavaScript не может, поэтому переход от AS невозможен.
Должностные ограничения Я не смог установить почти ничего. Я ничего не могу обновить. Редактор сценариев и набор инструментов ExtendScript - это то, с чем мне нужно работать.
Условия эксплуатации: OS X 10.8.5 & Adobe CS6
Как это работает
предпочтения пользователя сохраняются как свойства в локальных AppleScripts сохраненных в папке документов пользователя.
###property grabber.scpt
set mypath to path to documents folder
set mypropertiesfile to ((mypath & "myproperties.scpt") as string)
set thePropertyScript to load script file mypropertiesfile
set designerinitials to (designerinitials of thePropertyScript) ETC...
Некоторые из свойств являются списками AS.
Зачем мне нужен JS?
Делаем палитры и предпочел бы использовать ScriptUI, а не делать все это в AS, как это:
set dlgRef to make dialog with properties {name:"User Settings", can cancel:true, label:"Dialog Label"}
Строка руке AS прочь к JS заключается в следующем:
{"myname",{firstvalue:"test", secondvalue:"val2", thirdvalue: "val3"},{firstvalue:"test2", secondvalue:"val2", thirdvalue: "val3"}}
это не списки, а текст ...
JS
myAppleScript = new File("valid_path_to/property grabber.scpt");
var myreturn = app.doScript(myAppleScript, ScriptLanguage.applescriptLanguage);
var myname = myreturn[0];
var firstlist = myreturn[1];
var secondlist = myreturn[2];
браузер данных ExtendScript показывает:
firstlist = {firstvalue:"test", secondvalue:"val2", thirdvalue: "val3"}
Это не массив ...
Я попытался с помощью https://github.com/KAYLukas/applescript-json для кодирования JSON списков, но тот же результат.
firstlist = [{firstvalue:"test", secondvalue:"val2", thirdvalue: "val3"}]
Я также сделал это гораздо проще, только с
firstlist = {"test","val2","val3"}
Еще JS рассматривает его как строку, а не массив.
Любые идеи, что мне нужно делать или я делаю неправильно? Надеюсь, это просто, и я чувствую себя глупо, если получаю ответ ...
eval был ответом, если бы я не хотел фактического json – Lithodora