Я пытаюсь создать функцию, которая очищает объект JSON, удаляя объекты jQuery и нулевые объекты, строки.
КОД:
Удалить jQuery и нулевые объекты из объекта JSON
JSON.clean = function (object) {
/// <summary>Removes jQuery and null values from json object.</summary>
var filter = function (obj, doArrays) {
$.each(obj, function (key, value) {
if (value === "" || value === null) {
delete obj[key];
} else if (Object.prototype.toString.call(value) === '[object Object]') {
filter(value);
} else if (doArrays || Array.isArray(value)) {
obj[key] = filterArray(value);
}
});
return obj;
};
var filterArray = function (obj) {
var result = [];
for (var i = 0; i < obj.length; i++) {
result.push(filter(obj[i], false));
}
return result;
};
var result;
if ($.isArray(object)) {
result = [];
for (var i = 0; i < object.length; i++) {
result.push(filter(object[i]));
}
} else {
result = filter(object);
}
return result;
};
ПРОБЛЕМА:
Кодовые падает при попытке очистить массивов в пределах объекта JSON.
Я знаю, что неправильно изменять Array, как это, но это чисто предназначено для объектов JSON с массивом.
Мое предложение по этой проблеме состояло бы в том, чтобы дождаться завершения очистки массива.
Я не знаю, как добиться этого в Javascript, поэтому я надеюсь, что кто-то из вас может помочь!
Я использовал этот источник для основной идеи:
How do I remove all null and empty string values from a json object?
Что * "кодовыми аварии" * означает? Сбой браузера? Кодирует ли код с ошибкой? – 2014-09-29 17:56:21
... и похоже, что вы имеете дело с объектами JavaScript, а не с JSON, поскольку вы не можете представлять конкретные типы объектов в JSON, кроме объектов Array. – 2014-09-29 17:57:08
Когда я запускаю этот код с помощью jQuery 2.1.0, я получаю, что ошибка a не определена в библиотеке javascript, это происходит при попытке вызвать рекурсивную функцию для очистки массива. –