Do JSON keys need to be unique?
以下问题与我之前提到过的问题有关:帮助解析简单的JSON(使用JSON for JAVA ME)
JSON密钥需要是唯一的吗? 例如,我在解析以下XML时遇到了问题(使用JSON ME):
1 | {"name" :"JACK","name" :"JILL","name" :"JOHN","name" :"JENNY","name" :"JAMES","name" :"JIM"} |
而且,显然,它因为键必须是唯一的。 我只是想知道在所有情况下是否都是真的。 例如,如果我使用的不是JSON ME,我是否可以解析所有这些名称?
谢谢。
如果您使用多个具有相同名称的键,则不会出现"错误",但在JSON中,具有相同名称的最后一个键是将要使用的键。
在你的情况下,键"name"最好包含一个数组作为它的值,而不是有多个键"name"。具有两个名称或两个相同属性的相同对象或"事物"没有多大意义。
例如。:
1 2 3 | { "name" : ["JOHN","JACK","...", ... ] } |
来自RFC 4627:
An object structure is represented as a pair of curly brackets
surrounding zero or more name/value pairs (or members). A name is a
string. A single colon comes after each name, separating the name
from the value. A single comma separates a value from a following
name. The names within an object SHOULD be unique.
这是使用数组的可能解决方案。只需使用数组索引
1 2 3 4 5 6 7 8 9 10 | the_json_array.getJSONObject(0); {"nameList": [{"name" :"JACK"}, {"name" :"JILL"}, {"name" :"JOHN"}, {"name" :"JENNY"}, {"name" :"JAMES"}, {"name" :"JIM"}]} |
jQuery能够解析它。但是如果你试图访问它,它只是回馈最后一个值。
查看
http://jsfiddle.net/MQmM4/2/
所以,我猜它是可解析的,但是如果使用相同的键,则会覆盖该值。
JSON对象如下所示
1 2 3 4 5 6 7 8 9 10 11 |
JSON对象基本上是包含键值对的散列映射。
这就是你每次都被覆盖的原因。为了避免这种情况
Either you must have unique key values Or you should wrap the key value pair as individual objects into an array
看看这个JSON Object java实现,深入了解JSON。