JSON 密钥是否需要是唯一的?

2022-09-01 04:59:06

以下问题与我之前提出的一个问题有关:帮助解析简单的JSON(将JSON用于JAVA ME)

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

{
  "name" : "JACK",
  "name" : "JILL",
  "name" : "JOHN",
  "name" : "JENNY",
  "name" : "JAMES",
  "name" : "JIM"
}

而且,显然,这是因为密钥必须是唯一的。我只是想知道这是否在所有情况下都是真的。例如,如果我使用的是 JSON ME 以外的其他名称,我是否能够解析所有这些名称?

谢谢。


答案 1

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

在你的例子中,键“name”最好包含一个数组作为它的值,而不是具有许多键“name”。同一对象或“事物”有两个名称或两个冲突的相同属性没有多大意义。

例如:

{
  "name" : [ "JOHN", "JACK", "...", ... ]
}

答案 2

来自 RFC 4627

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