Согласно спецификации Class JSONArray :
- Дополнительная (запятая) может появляться перед закрывающей скобкой.
- Нулевое значение будет вставлено при наличии (запятая) elision.
Итак, насколько я понимаю, следует разрешить написать:
[0,1,2,3,4,5,]
Но может случиться так, что некоторые парсеры вернут число 7 как количество элементов (как IE8, как указал Дэниел Уорвикер) вместо ожидаемого 6.
Отредактировано:
Я нашел этот JSON Validator , который проверяет строку JSON по RFC 4627 (тип носителя application / json для нотации объектов JavaScript) и по спецификации языка JavaScript. На самом деле, здесь массив с конечной запятой считается действительным только для JavaScript, а не для спецификации RFC 4627.
Однако в спецификации RFC 4627 указано, что:
2,3. Массивы
Структура массива представляется в виде квадратных скобок, окружающих ноль
или больше значений (или элементов). Элементы разделяются запятыми.
array = begin-array [ value *( value-separator value ) ] end-array
Для меня это опять проблема интерпретации. Если вы напишите, что Элементы разделены запятыми (без указания каких-либо особых случаев, например, последнего элемента), это можно понять обоими способами.
P.S. RFC 4627 не является стандартом (как явно указано) и уже устарел в RFC 7159 (который является предлагаемым стандартом) RFC 7159