JSON密钥需要是唯一的吗?

lit*_*leK 30 java parsing json key unique

以下问题与我之前提到过的问题有关:帮助解析简单的JSON(使用JSON for JAVA ME)

JSON密钥需要是唯一的吗?例如,我在解析以下XML时遇到了问题(使用JSON ME):

{"name" : "JACK","name" : "JILL","name" : "JOHN","name" : "JENNY","name" : "JAMES","name" : "JIM"}
Run Code Online (Sandbox Code Playgroud)

而且,显然,它因为键必须是唯一的.我只是想知道在所有情况下是否都是真的.例如,如果我使用的不是JSON ME,我是否可以解析所有这些名称?

谢谢.

Jea*_*anK 35

如果您使用多个具有相同名称的键,则不会出现"错误",但在JSON中,具有相同名称的最后一个键是将要使用的键.

在你的情况下,键"name"最好包含一个数组作为它的值,而不是有多个键"name".具有两个名称或两个相同属性的相同对象或"事物"没有多大意义.

例如:

{
  "name" : [ "JOHN", "JACK", "...", ... ]
}
Run Code Online (Sandbox Code Playgroud)

  • `但是在 JSON 中,最后一个同名的键就是将要使用的键。`请参考? (3认同)
  • 您的回答是指一种特定实现的行为,而不是 JSON 标准。 (2认同)

jha*_*hoo 24

来自RFC 4627:

对象结构表示为围绕零个或多个名称/值对(或成员)的一对花括号.名称是一个字符串.每个名称后面都有一个冒号,将名称与值分开.单个逗号将值与以下名称分隔开. 对象中的名称应该是唯一的.

  • RFC4157已被RFC7159废弃,并且几乎相同.http://stackoverflow.com/questions/21832701/does-json-syntax-allow-duplicate-keys-in-an-object/23195243#23195243 (2认同)

Bal*_*a R 5

jQuery 能够解析它。但如果您尝试访问它,它只是返回最后一个值。

查看 http://jsfiddle.net/MQmM4/2/

所以,我猜它是可以解析的,但是如果您使用相同的密钥,该值会被覆盖。