4. Objects (Oggetti)
Una struttura di oggetto è rappresentata come una coppia di parentesi graffe che circondano zero o più coppie nome/valore (o membri). Un nome è una stringa. Un singolo due punti viene dopo ogni nome, separando il nome dal valore. Una singola virgola separa un valore da un nome successivo. I nomi all'interno di un oggetto dovrebbero (SHOULD) essere unici.
object = begin-object [ member *( value-separator member ) ]
end-object
member = string name-separator value
Un oggetto i cui nomi sono tutti unici è interoperabile nel senso che tutte le implementazioni software che ricevono quell'oggetto concorderanno sulle mappature nome-valore. Quando i nomi all'interno di un oggetto non sono unici, il comportamento del software che riceve tale oggetto è imprevedibile. Molte implementazioni riportano solo l'ultima coppia nome/valore. Altre implementazioni riportano un errore o non riescono ad analizzare l'oggetto, e alcune implementazioni riportano tutte le coppie nome/valore, inclusi i duplicati.
È stato osservato che le librerie di analisi JSON differiscono sul fatto che rendano o meno l'ordine dei membri dell'oggetto visibile al software chiamante. Le implementazioni il cui comportamento non dipende dall'ordine dei membri saranno interoperabili nel senso che non saranno influenzate da queste differenze.