Skip to main content

4. Objects (对象)

对象结构表示为一对花括号包围零个或多个名称/值对(或称为成员 Members)。名称是字符串。每个名称后面跟一个冒号,将名称与值分隔开。值与后续名称之间用逗号分隔。对象内的名称应该 (SHOULD) 是唯一的。

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

member = string name-separator value

所有名称都唯一的对象是可互操作的,因为接收该对象的所有软件实现都会对名称-值映射达成一致。当对象内的名称不唯一时,接收此类对象的软件行为是不可预测的。许多实现只报告最后一个名称/值对。其他实现会报告错误或无法解析对象,还有一些实现会报告所有名称/值对,包括重复项。

已观察到JSON解析库在是否使对象成员的顺序对调用软件可见方面存在差异。行为不依赖于成员顺序的实现将是可互操作的,因为它们不会受到这些差异的影响。