試用范圍:未知json數據對象類型、未知json的數據結構的前提下,比較兩個json對象的異同,
效果:傳入兩個json對象,將相同部分去除,留下不相同的部分,用於對比。
這個是前台javascript進行處理,后台.NET的在研究中。
//created by isenhome.zhang in 2013/01/23 15:13
var AdchinaJson = {};
AdchinaJson.Getdifferent = function (json1, json2) {
for (var key in json1) {//循環遍歷其中一個json對象
if (typeof (json1[key]) != "object") {
if (json2[key] != null) {
if (json1[key] == json2[key]) {
delete json1[key];
delete json2[key];
}
}
}
else {
if (json1[key].length >= 0) {
for (i = 0; i < json1[key].length; i++) {
this.Getdifferent(json1[key][i], json2[key][i]);
}
}
else {
this.Getdifferent(json1[key], json2[key]);
}
}
}
}
AdchinaJson.Json2Str = function (o) {
var arr = [];
var fmt = function (s) {
if (typeof s == 'object' && s != null) return AdchinaJson.Json2Str(s);
return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
}
for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
return '{' + arr.join(',') + '}';
}
