我想创建一个通过删除jQuery对象和空对象,字符串来清除JSON对象的函数。
CODE:
从JSON对象中删除jQuery和空对象
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对象内阵列时的代码崩溃。
我知道改变这样的数组是错误的,但这纯粹是为了在数组中使用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我得到的错误是在JavaScript库中未定义,这发生在试图调用清理数组的递归函数时。 – 2014-09-29 21:14:58