В "shopSiteId" у Вас, вероятно, находится jQuery-элемент.
Исключите его, используя второй параметр функции JSON.stringify.
function replacer(key, value) {
if (key === 'shopSiteId') {
return 'jQuery-element'; // либо можно undefined, чтобы полностью исключить
}
return value;
}
JSON.stringify(data, replacer);
function replacer(key, value) {
if (value instanceof jQuery) {
return undefined;
}
return value;
}
А вообще суть не в jQuery-объекте, они без ошибок сериализуются, а в том, что ТС как-то умудрился положить в свойство context ссылку на первое свойство этого объекта, то есть obj.shopSiteId[0] === obj.shopSiteId.context. Проверить можно как-то так.