Согласно спецификации класса 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
Для меня это опять проблема интерпретации. Если вы напишите, что элементы разделяются запятыми (без каких-либо особых случаев, например, последнего элемента), это можно понять обоими способами.
PS RFC 4627 не является стандартом (как явно указано) и уже устарел в RFC 7159 (который является предлагаемым стандартом) RFC 7159