Alternative Objekt Notations Idee

Hallo,
Ich beschäftige ich mit JSON und muss sagen, dass es mir relativ gut gefällt. Trotzdem gibt es Sachen die mir persönlich nicht gefallen: ist-gleich-Zeichen, Anführungszeichen, Beistriche nach jeder Variablensetzung, keine Kommentare möglich. Es ist sogar ein wenig platzsparsamer geworden als JSON geworden.
Hier mal ein Beispiel-Objekt-Notation:


{
  Herausgeber(Xema)
  Nummer(1234-5678-9012-3456)
  Deckung<2e+6>
  Währung(EURO)
  Inhaber {
    Name(Mustermann)
    Vorname(Max)
    männlich<true>
    Hobbys [ Reiten, Golfen, Lesen ]
    Alter<42>
    Kinder[]
    Partner<null>
  }
  /* Zusatz */
  ZahlenArray [=1, =2, =3]
  Klammern('(Inside)')
  KlammernArray[(),(),()]
}

(nach dem Vorbild Wikipedias JSON-Seite)
Mein derzeitiger Stand ist, dass ich diese Notation MDON (MDickie’s Object Notation) benenne, da ich die Spezifikation verfasse würde und auf GitHub stellen werde.
Ich freue mich auf euer Feedback.
Grüße,
MDickie

Bestimmte Sachen haben schon ihren Grund. Z.B. die „Beistriche“ (die man als nicht-Schluchtensche!ßer doch eigentlich „Kommas“ nennt? :D), damit man alles in eine Zeile schreiben kann. Das sind Trennzeichen, und im Moment sind bei dir die Trennzeichen wahlweise LF oder LF+CR.

Abgesehen davon… rund um JSON herum existiert eine (im Hinblick auf das geringe Alter dieses Formats schon beeindruckende) Infrastruktur, gegen die man so gesehen nur schwer ankommen wird… aber das soll nicht demotivierende klingen :wink:

Genauer genommen kann man auch die LF oder LF+CR auch entfernen. Das vorige Beispiel ohne Leerzeichen:

{Herausgeber(Xema)Nummer(1234-5678-9012-3456)Deckung<2e+6>Währung(EURO)Inhaber{Name(Mustermann)Vorname(Max)männlich<true>Hobbys[Reiten,Golfen,Lesen]Alter<42>Kinder[]Partner<null>}/*Zusatz*/ZahlenArray[=1,=2,=3]Klammern('(Inside)')KlammernArray[(),(),()]}

PS: Klug geschissen :wink:

OK, trotzdem, wenn ich mir sowas wie http://tools.ietf.org/html/rfc2822 für http://en.wikipedia.org/wiki/YAML oder http://tools.ietf.org/html/rfc4627 für JSON ansehe, würde ich mir schon überlegen, ob ich mir diesen Block ans Bein binden würde, um ein paar bytes zu sparen, aber vielleicht gibt es ja einen guten Grund dafür :wink:

Ich weiß eigentlich auch nicht, ob ich es realisieren werde. Naja war halt eine Idee.
Grüße,
MDickie

Für ganz harte gibt es sonst noch BSON, das ist eine Binärform von JSON (ich glaube von Google entwickelt)

Nope, BSON kommt von MongoDB. Ist aber nicht automatisch platzsparender, sondern darauf ausgelegt, schnell traversierbar zu sein.

Ach MongoDB war es, auch gut :slight_smile:
Hab’s gerade mal nachgelesen und tatsache durch prefixing kann das sogar etwas größer sein… hm wie komm ich denn auf den komischen Gedanken, dass … seltsam.

Denke MessagePack eignet sich viel besser um Sachen kleiner zu halten. Der eigentlche Gedanke war bei MDON es auch als Konfigurationsformat zu verwenden, da es im Gegensatz zu JSON Kommentare erlaubt.
Grüße,
MDickie

[QUOTE=mdickie], da es im Gegensatz zu JSON Kommentare erlaubt.
[/QUOTE]

Hmm, Konfigurationsdatei zuerst von Kommentaren entfernen, dann dem JSON-Parser übergeben :wink:

Oder den Parser überreden, dass er Kommentare verschwinden lässt. :wink: (@TheDarkRose Deine Methode sieht aus wie ein Ugly-Hack ::ugly)