比较json内容是否相同

来源:互联网 发布:ztree引用本地json 编辑:程序博客网 时间:2024/06/16 12:41
1.简单json 比较function isObjectValueEqual(obja, objb) {    // get all key    var aProps = Object.getOwnPropertyNames(obja);    var bProps = Object.getOwnPropertyNames(objb);    if (aProps.length != bProps.length) {        return false;    }    for (var i = 0; i < aProps.length; i++) {        var propName = aProps[i];        if (obja[propName] !== objb[propName]) {            return false;        }    }    return true;}2.复杂json比较function isObj(object) {    return object && typeof (object) == 'object' && Object.prototype.toString.call(object).toLowerCase() == "[object object]";}function isArray(object) {    return object && typeof (object) == 'object' && object.constructor == Array;}function getLength(object) {    var count = 0;    for (var i in object) count++;    return count;}function Compare(objA, objB) {    if (!isObj(objA) || !isObj(objB)) return false;     if (getLength(objA) != getLength(objB)) return false;     return CompareObj(objA, objB, true);}function CompareObj(objA, objB, flag) {    for (var key in objA) {        if (!flag)             break;        if (!objB.hasOwnProperty(key)) { flag = false; break; }        if (!isArray(objA[key])) {             if (objB[key] != objA[key]) { flag = false; break; }        } else {            if (!isArray(objB[key])) { flag = false; break; }            var oA = objA[key], oB = objB[key];            if (oA.length != oB.length) { flag = false; break; }            for (var k in oA) {                if (!flag)                     break;                flag = CompareObj(oA[k], oB[k], flag);            }        }    }    return flag;}3. 将json转化为string 比较字符串即可


0 0