2012-05-07 12 views
1

我讀過RFCJSON.org,並且看不到數組索引是基於0還是基於1的引用。 JS最初被「發現」,大家是否認爲它是基於0的?JSON是否有聲明的索引基礎?

例如:

{ 
    "selectedItem": 1, 
    "Items": ["boots", "gloves", "hat"] 
} 

是選擇的項目 「靴子」 或 「手套」?

如果是這種情況(假設從0開始),這不是假設可能會帶來麻煩,特別是如果JSON支持在默認情況下使用基於1的索引的語言中實現?

+0

** J ** ava ** S ** cript ** O ** bject ** N ** otation。 Js是基於零的。混亂在哪裏? –

+1

當用其他語言實現某些內容時,一般規範(請參閱:RFC-4627)應該是明確的。 –

回答

2

我不認爲數組索引是一個由JSON覆蓋的概念。 JSON數組就是一組有序寫在一個特殊的方式:

陣列是值的有序集合。一個數組以[(左括號)開頭並以](右括號)結尾。值由,(逗號)分隔。

這就是它的全部。索引問題留給了終點,第一個元素可能是索引0,1,10或"pancakes",只要索引與元素的順序匹配,就不會對JSON產生任何影響。陣列。

回到細節。 "selectedItem": 1是指"boots"還是"gloves"取決於JSON生產者。

+0

因此,簡而言之,生產者必須告知消費者他們正在使用什麼指數參考系統? (是的,1..2 ..,0..1 ..或煎餅...脆餅??) –

+0

@DanMcGrath:正確。 JSON是一種數據傳輸機制,傳輸數據的語義是別人的問題。 –

1

不,並不需要一個。在JSON中沒有數組索引。那selectedItem字段是一個簡單的整數。如果它包含對其他字段的某些引用,那是在應用程序域中,而不是數據符號。

JSON沒有提供引用數組元素的方法,因此基本索引號是無關緊要的。