Syntax von zusammengesetzten Werten
Einige Eigenschaften sind aus technischer Sicht der JSON-Syntax zwar nicht in weitere Unterelemente unterteilt, bestehen aber auf Anwendungsebene aus mehreren Teilen.
Syntaktisch sind dies String-Werte, die sich aus kommaseparierten Einzelwerten zusammensetzen. Programmintern können diese Werte aber auch als anderer Datentyp interpretiert werden.
Eine solche Eigenschaft kann beispielsweise wie folgt definiert sein:
"Property_X": "Value_1, Value_2, Value_3"
Wenn nur die Einzelwerte aufgelistet werden, muss zwingend die Reihenfolge eingehalten werden, die in dieser Dokumentation für die jeweilige Eigenschaft beschrieben ist. Nur auf diese Weise können die Werte der korrekten Bedeutung zugeordnet werden.
Wenn der zweite Wert z. B. optional ist und weggelassen werden soll, muss dennoch ein leerer Wert angegeben werden, um die Reihenfolge beizubehalten:
"Property_X": "Value_1, , Value_3"
In dieser Dokumentation ist für die meisten Werte zusätzlich ein Parametername aufgeführt, der optional angegeben werden kann. Über den Parameternamen wird eine Eindeutigkeit hergestellt. Das ermöglicht die Weglassung und die Änderung der Reihenfolge von Werten, z. B.:
"Property_X": "Param_3: Value_3, Param_1: Value_1"
Das Programm sucht einen Wert zunächst anhand des Namens. Wenn der Wert über den Namen nicht gefunden wird, wird anhand der Position gesucht. An der Position darf dann kein anderer benannter Wert stehen. Die in den Werteauflistungen eingefügten Leerzeichen sind syntaktisch nicht erforderlich, sondern dienen hier nur der besseren Lesbarkeit.
Eine syntaktische Besonderheit stellen Kommata dar, wenn diese nicht als Trennzeichen zwischen Werten dienen, sondern Teil eines Wertes sind. In der Praxis betrifft dies insbesondere Makroausdrücke, z. B. Kommata in der Parameterliste einer Makrofunktion. Aus diesem Grund werden Kommata innerhalb von einfachen und doppelten Anführungszeichen sowie innerhalb von runden, eckigen und geschweiften Klammern in diesem Kontext implizit ignoriert. Für einen solchen Ausdruck muss somit keine spezielle Syntax beachtet werden. Wenn innerhalb eines elementaren Wertes, der kein Makro darstellt, ein Komma verwendet wird, muss diesem Komma ein \ als Maskierungszeichen vorangestellt werden.