Passa al contenuto principale

4. Objects (Oggetti)

Una struttura di oggetto è rappresentata come una coppia di parentesi graffe che racchiudono zero o più coppie nome/valore (o membri). Un nome è una stringa. Ogni nome è seguito da due punti che separano il nome dal valore. Una virgola separa un valore dal nome successivo. I nomi all'interno di un oggetto DOVREBBERO essere univoci.

object = begin-object [ member *( value-separator member ) ]
end-object

member = string name-separator value

Un oggetto i cui nomi sono tutti univoci è interoperabile, poiché tutte le implementazioni software che ricevono tale oggetto concorderanno sulle mappature nome-valore. Quando i nomi all'interno di un oggetto non sono univoci, il comportamento del software che riceve tale oggetto è imprevedibile. Molte implementazioni riportano solo l'ultima coppia nome/valore. Altre implementazioni segnalano un errore o non riescono ad analizzare l'oggetto, e alcune implementazioni riportano tutte le coppie nome/valore, inclusi i duplicati.

Si è osservato che le librerie di parsing JSON differiscono nel rendere visibile l'ordine dei membri dell'oggetto al software chiamante. Le implementazioni il cui comportamento non dipende dall'ordine dei membri saranno interoperabili, poiché non saranno influenzate da queste differenze.