我已经阅读了RFC和JSON.org并且看不到关于数组索引是基于 0 还是基于 1 的参考。最初是在 JS 中“发现”的,是不是每个人都认为它是基于 0 的?
例如:
{
"selectedItem": 1,
"Items": ["boots", "gloves", "hat"]
}
选择的项目是“靴子”还是“手套”?
如果是这种情况(假设从 0 开始),这种假设是否可能会带来麻烦,特别是如果 JSON 支持是在默认使用基于 1 的索引的语言中实现的?
我认为数组索引根本不是JSON 涵盖的概念。JSON 数组只是以特定方式编写的有序集合:
数组是值的有序集合。数组以
[
(左括号)开始,以]
(右括号)结束。值用,
(逗号)分隔。
这就是它的全部。索引问题留给端点,第一个元素可以是索引 0、1、-10,或者"pancakes"
只要索引与数组中元素的顺序匹配,它就不会对 JSON 产生任何影响.
回到细节。"selectedItem": 1
是指还是"boots"
取决于"gloves"
JSON 生产者。
不,它不需要一个。JSON 中没有数组索引之类的东西。该selectedItem
字段是一个简单的整数。如果它包含对另一个字段的引用,那是在应用程序域中,而不是数据符号。
JSON 不提供引用数组元素的方法,因此基本索引号无关紧要。