«Может кто-нибудь пролить свет или какую-нибудь ссылку, где я могу прочитать больше?»
Когда вы имеете дело с JSON
данными, вы можете обратиться к json.org , чтобы прочитать о требованиях спецификации.
В JSON
Array
- это список порядка значений, разделенных ,
.
Таким образом, JSON.stringify()
просто игнорирует все, что не может быть представлено в виде простого упорядоченного списка.
Так что, если вы делаете ...
var simpleArray = [];
simpleArray.foo = 'bar';
... вы все еще задаете массив, поэтому он ожидает только числовые индексы и игнорирует все остальное.
Поскольку JSON
не зависит от языка, методы работы с JSON
должны принять решение о том, какая языковая структура лучше всего подходит для каждой JSON
структуры.
Итак, JSON имеет следующие структуры ...
{} // object
[] // array
Вы должны заметить, что, хотя выглядят очень похожи на JavaScript
объекты и массивы, они не строго совпадают.
Любые JavaScript
структуры, используемые для создания JSON
структур, должны соответствовать тому, что позволят JSON
структуры. Вот почему нечисловые свойства удалены исключены.
Пока JavaScript
не против, JSON
не потерпит их.