const requestRebuilt = {"username": user, "password": password, "sTime": time, "function": function,
"functionParams": requestParams, "salt": salt};
function sortObject(object){
var keys = _.keys(object);
var sortedKeys = _.sortBy(keys, function(key){
//console.log(key);
return key;
});
var sortedObj = {};
var sortedObjJson = "";
for(var index in keys){
var key = keys[index];
//console.log(key + ' ' + typeof object[key]);
if(typeof object[key] == 'object' && !(object[key] instanceof Array)){
sortedObj[key] = sortObject(object[key]);
} else if(object[key] instanceof Array) {
//sortedObj[key] = object[key].sort();
var arrayLength = object[key].length;
for (var i = 0; i < arrayLength; i++) {
sortedObj[key] = sortObject(object[key][i]);
//console.log(object[key][i]);
}
} else {
sortedObj[key] = object[key];
}
}
return sortedObj;
}
const sortedResult = sortObject(requestRebuilt);
console.log(sortedResult);
const requestOrdered = JSON.stringify(sortedResult);
console.log(requestOrdered);
var hash = CryptoJS.SHA256(requestOrdered).toString();
postman.setGlobalVariable("hash", hash);
处理后
sortObject(object) {
const keys = Object.keys(object);
keys.sort();
const sortedObj = {};
for (const index in keys) {
const key = keys[index];
if (typeof object[key] == 'object' && !(object[key] instanceof Array)) {
sortedObj[key] = this.sortObject(object[key]);
} else if (object[key] instanceof Array) {
const arrayLength = object[key].length;
for (let i = 0; i < arrayLength; i++) {
sortedObj[key] = this.sortObject(object[key][i]);
}
} else {
sortedObj[key] = object[key];
}
}
return sortedObj;
}
或者
function sortKeys(x) {
if (typeof x !== "object" || !x) return x;
if (Array.isArray(x)) return x.map(sortKeys);
return Object.keys(x)
.sort()
.reduce((o, k) => ({ ...o, [k]: sortKeys(x[k]) }), {});
}