(Info:) (<neu>) Im sechsten Artikel »Voreinstellungen als JSON lesen und schreiben mit Javascript für Adobe Illustrator 2022« erfahren Sie in einem Tutorial Von Null auf …, wie Sie Voreinstellungen für ein Javascript in Adobe Illustrator 2022 als JSON-Datei lesen und schreiben können. Dieses Tutorial funktioniert auch mit älteren Versionen von Adobe Illustrator. Die hier beschriebene Vorgehensweise lässt sich leicht auch für Javascripts in Photoshop oder InDesign umsetzen.
Dieser Artikel gehört zur Gruppe der Programmier-Helfer (Programmer’s helper, programming helper).
(Hinweis:) Das Scripting (Programmierung) in Adobe Illustrator und anderen Adobe Apps basiert auf Adobe ExtendScript, eine Abart von ECMAScript 3, kurz ES3, und ist somit ein Dialekt von Javascript. Die Dateiendung eines Adobe ExtendScript ist ».jsx«. Trotzdem spricht man auch bei den Adobe Programmen von Javascripts. Javascripts haben übrigens die Endung ».js«.
(Tipp:) Wenn Sie noch nicht mit Javascript vertraut sind, dann lesen Sie zuerst die Artikel »Illustrator mit Javascript automatisieren«.
(Hilfe:) Sie wollen oder können nicht selbst programmieren? Sie brauchen kurzfristig ein Javascript für eine Automatisierung für ein aktuelles Problem in Illustrator oder einem anderen Adobe Programm? Dann helfe ich Ihnen gerne als JavaScript-Entwickler mit meiner jahrzehntelang Programiererfahrung.
Schreiben Sie mir einfach und unverbindlich per Kontaktformular.
Inhaltsverzeichnis
- Voreinstellungen lesen und schreiben
- JSON – was ist das?
- Welche Programmteile braucht das Javascript für JSON?
- Fazit
Voreinstellungen lesen und schreiben
Wenn ein Benutzer regelmäßig ein Javascript wie »Save-Incrementally.jsx« nutzt, das mehrere Möglichkeiten anbietet, dann wird er froh sein, wenn er Voreinstellungen speichern kann, statt jedes Mal beim Aufrufen des Javascripts die gleichen Einstellungen eingeben zu müssen.
Diese Benutzerfreundlichkeit können Sie mit JavaScript Object Notation, kurz JSON leicht realisieren.
JSON – was ist das?
Die JavaScript Object Notation (JSON) ist das Datenaustauschformat, dessen großer Vorteil darin liegt, dass die Datei für Menschen lesbar ist und trotzdem in Javascripts schnell und einfach benutzt werden kann.
{ "Name" : "Mustermann",
"Vorname": "Max",
"Alter" : 42 }
Die Schreibweisen in einer JSON entsprechen genau der Schreibweisen in einer Javascript-Datei. Dabei bestehen die Daten immer aus einem Paar, das aus dem Variablennamen wie »Name« und dem zugehörigen Wert wie »Mustermann« bestehen. Es stehen die Datentypen String, Number, Boolean, Null, Object und Array zur Verfügung. Somit lassen sich sogar kleine Datenbanken einfach als Textdatei aufbauen.
Der Variablenname vor dem Doppelpunkt steht oft in Anführungszeichen. Der Inhalt der Variable steht in Anführungszeichen, wenn es ein String ist. Ein Komma beendet die Definition, wenn noch eine folgt. Der Zeilenumbruch dient nur der Lesbarkeit und ist nicht zwingend.
JSON werden verwendet um (temporär) Benutzerdaten zu speichern und zu lesen, für die Datenübertragung zwischen verschiedenen Programmen oder komplexe Daten zu vereinfachen.
Der größte Vorteil von JSON ist, dass nach dem Einlesen (parsen) einer JSON-Datei die Variablen und ihre definierten Werte im Programm sofort zur Verfügung stehen und diese sich wie ganz normale Variablen verhalten.
(Achtung:) Kommentarzeilen können Sie in JSON nicht verwenden. Es gibt jedoch den Trick, dass Sie dafür eine String-Variable verwenden, falls dies nötig ist.
{ "Kommentar" : "// Eine Person",
"Name" : "Mustermann",
"Vorname": "Max",
"Alter : 42 }
Welche Programmteile braucht das Javascript für JSON?
Ein Javascript, das Voreinstellungen als JSON in Adobe Illustrator 2022 lesen und schreiben kann, braucht folgende Programmteile:
- Eine Definition von Standardwerten, wenn (noch) keine JSON-Datei vorhanden ist.
- Funktionen zum Konvertieren der JSON
- Funktion zum Lesen der JSON-Datei.
- Funktion zum Schreiben der JSON-Datei.
Definition der JSON mit Standardwerten
Beim ersten Start ist noch keine JSON-Datei vorhanden. Daher müssen die Standardwerte aus dem Javascript selbst kommen. Das Gleiche ist nötig, wenn der Benutzer die JSON-Datei gelöscht hat. Für das kleine obige Beispiel aus den vier Einträgen sieht der Quellcode im Javascript wie folgt aus:
// Init the Javascript Object in a Javascript
var JO = {
Kommentar: "// Eine Person",
Name: "Mustermann",
Vorname: "Max",
Alter: 42
};
Dabei steht das »JO« für Javascript Object. Sie können es jedoch auch anders benennen. Aufgerufen werden die Variablen im weiteren Javascript als JO.Name
, JO.Vorname
oder JO.Alter
.
Funktionen zum Konvertieren der JSON
Wenn Sie nach JSON im Internet suchen, dann stoßen Sie auf große Bibliotheken, die erst geladen werden müssen, damit Befehle zum Umwandeln von Strings in JSON wie JSON.stringify()
und JSON in String wie JSON.parse()
funktionieren.
(Tipp:) Zum Glück ist das für einfache JSON nicht nötig. Sie können das Umwandeln von und nach JSON mit zwei recht einfachen Funktionen in Ihr Javascript einbauen.
Die erste Funktion »fJsonString« nutzt die Methode .toSource(), die einen String in Quellcode umwandelt.
(Achtung:) In den Adobe Programmen ist das Ergebnis dieser Methode in runde Klammern eingeschlossen, die Sie mit .substring
entfernen müssen.
Die zweite Funktion »fJsonParse« wandelt einen Quellcode in einen String um, wobei der Befehl use strict
zum Einsatz kommt. Dies soll Fehler im Quellcode verhindern und verlangt exakte Schreibweisen.
function fJsonString(pString) { // Object to String
var vString = ""+ (pString.toSource());
return (vString.substring(1, vString.lastIndexOf(")")));
// tip: return without ( ... ) at start and end
} // end-of-function
function fJsonParse(pObj) { // String to Object
// a string like "{ ort:'bar', nummer:42 }" will become an object
return Function('"use strict";return (' + pObj + ')')();
} // end-of-function
Funktion zum Schreiben einer JSON-Datei
Die Funktion zum Schreiben einer JSON-Datei auf die Festplatte, hier in den Ordner »Dokumente« durch Folder.myDocuments
ist ein ganz normales Javascript. Dabei wird die oben beschriebene Funktion fJsonString(JO)
; benutzt.
function fWriteJSON(pFileName) { // Write = Save Object in a JSON file
var vResult = 0;
if ( pFileName != null ) {
var vNewPath = Folder.myDocuments + vSeparator + pFileName;
var file = File(vNewPath);
try{
var vString = fJsonString(JO); // converting JSON
file.open("w"); file.writeln(vString); file.close();
vResult = 1;
}
catch(e){alert(e);}
}
return (vResult);
} // end-of-function
Funktion zum Lesen einer JSON-Datei
Die Funktion zum Lesen einer JSON-Datei von der Festplatte, hier in den Ordner »Dokumente« durch Folder.myDocuments
ist ein ganz normales Javascript. Dabei wird die oben beschriebene Funktion fJsonParse(vString);
benutzt.
function fReadJSON (pFileName) { // Read JSON file and put it into an object
var vResult = 0
if ( pFileName != null ) {
var vNewPath = Folder.myDocuments + vSeparator + pFileName;
var file = File(vNewPath);
var vString = "";
if (file.exists == true) {
try{
file.encoding = 'UTF8'; // set to 'UTF8' 'UTF-8'
file.open("r");
vString = file.read();
file.close();
JO = fJsonParse(vString); // converting JSON
vResult = 1;
}
catch(e){alert(e); }
}
}
return (vResult);
} // end-of-function
Fazit
Damit haben Sie alle nötigen Bestandteile für den Einsatz von JSON zum Lesen und Schreiben von Voreinstellungen kennengelernt. Idealerweise sollten Sie die Vorstellungen dem Benutzer in kleiner Benutzeroberfläche anbieten, die Sie in Javascript (ExtendScript) mit nicht zu großen Aufwand erstellen. Doch mehr dazu in einem späteren Artikel.
ENDE
(Hilfe:) Wenn Sie eine Funktion in (AI:), (PS:), (IC:), (ID:) oder (FM:) benötigen, jedoch nicht selbst programmieren, dann sprechen Sie mich an. Ich übernehme gerne kleine Aufträge: zum Kontaktformular.