diff --git a/src/main/java/_8/Lecture.java b/src/main/java/_8/Lecture.java index 9816c8c..2466d61 100644 --- a/src/main/java/_8/Lecture.java +++ b/src/main/java/_8/Lecture.java @@ -282,6 +282,31 @@ public class Lecture { } } + /* + * SON - Simple/String Object Notation + * (selbst ausgedacht, inspiriert durch JSON) + * + * SON hat 3 elementare Datentypen: String, Array und Object + * Strings sind Zeichenketten die nicht weiter gekenzeichnet werden. + * Sie sollten keine der Kontrollzeichen {[]},: enthalten. + * Ein String endet mit einem : wenn es ein name ist oder mit + * einem , wenn es ein value ist. Sie haben keinen + * whitespace am Anfang und Ende. Zwischen den daten kann + * beliebig viel (unregelmäßiger) whitespace, also Leerzeichen, + * Tabulatoren und Zeilenumbrüche sein. + * + * Arrays sind Listen aus beliebigen SON Datenstrukturen, + * getrennt durch , und eingeschlossen in []. Beispiel: + * [1, 2, a, hello, [inner, array]] + * + * Objects enthalten eine Zuordnung von name zu value. Der name + * ist dabei ein string, und value eine beliebige SON Datenstruktur. + * Name und value sind durch : getrennt und name-value Paare + * sind durch , getrennt. Ein Object ist in {} eingeschlossen. Beispiel: + * {hello: world, a:[1, {foo:bar}]} + * + */ + public static void saveText2(String filename, Lecture data) throws IOException { Path file = Paths.get(filename); try(SonWriter out = new SonWriter(Files.newBufferedWriter(file))) { diff --git a/src/main/java/_8/io/SonReader.java b/src/main/java/_8/io/SonReader.java index 8dd4e8a..9191795 100644 --- a/src/main/java/_8/io/SonReader.java +++ b/src/main/java/_8/io/SonReader.java @@ -90,7 +90,7 @@ public class SonReader implements Closeable { do { name.append((char) c); } while((c = this.eofRead()) != ':'); - return name.toString(); + return name.toString().trim(); } private void prepareName() throws IOException {