Я использовал JSON.stringify()
много раз и знаю о некоторых проблемах, например (описанных в здесь) :
- циклы
- слишком глубокие объекты
- слишком длинные массивы
Однако я столкнулся с неправильной строкой операции над объектом, которая выглядит так:
После запуска JSON.stringify(obj) на консоли я получаю это.
"[{"$$hashKey":"object:103",
"ProductCategories": [{"Id":2,"ShopProductCategoryName":"Drink","isSelected":true}
{"Id":3,"ShopProductCategoryName":"Food","isSelected":true}]
}]"
Он только упорядочивает ProductCategories
и $$hashKey
, что совершенно неожиданно.
Попытки решения
Если я создаю новый объект из obj
и упорядочиваю его, возвращает правильный JSON.
var newObj = { // Creates new object with same properties.
AllProductCategories: obj.AllProductCategories,
Id: obj.Id,
LabelName: obj.LabelName,
Percentages: obj.Percentages,
ProductCategories: obj.ProductCategories
}
JSON.stringify(newObj); // Returns correct JSON.
Я использовал код для принудительной отправки объекта в веб-апи, но, конечно, это не то, что я хочу.
Как я вижу,
- Нет циклов.
- Это не слишком глубоко. (имеет только глубину 3)
Поэтому не могу понять, что не так.
JSON.stringify(obj)
. - person dewe   schedule 06.07.2015console.log
не обязательно асинхронный, см. stackoverflow.com/a/23392650/1092711 - person Pavlo   schedule 06.07.2015console.log(obj)
иJSON.stringify(obj)
последовательные операции. - person dewe   schedule 06.07.2015.toJSON
? developer.mozilla.org/en/docs/ Интернет/JavaScript/Справочник/ - person Alexey Ten   schedule 06.07.2015