Java 将JSON数据作为值对映射进行排序
需要根据密钥的优先级对该映射进行排序 所需的输出是 { “5eaa9bs8”:{ “Id”:“1958208”, “优先权”:2 }, “6eaa9ce8”:{ “Id”:“1958208”, “优先权”:1 }, “5eaa9ce8”:{ “Id”:“1958208”, “优先级”:0 }Java 将JSON数据作为值对映射进行排序,java,json,sorting,collections,treemap,Java,Json,Sorting,Collections,Treemap,需要根据密钥的优先级对该映射进行排序 所需的输出是 { “5eaa9bs8”:{ “Id”:“1958208”, “优先权”:2 }, “6eaa9ce8”:{ “Id”:“1958208”, “优先权”:1 }, “5eaa9ce8”:{ “Id”:“1958208”, “优先级”:0 } }Json对象不会维持顺序,为了保持顺序,请使用数组 步骤1:将对象转换为数组: {"5eaa9ce8": { "Id": "1958208", "prior
}Json对象不会维持顺序,为了保持顺序,请使用数组 步骤1:将对象转换为数组:
{"5eaa9ce8": {
"Id": "1958208",
"priority": 0
},
"5eaa9bs8": {
"Id": "1958208",
"priority": 2
},
"6eaa9ce8": {
"Id": "1958208",
"priority": 1
}
}
keys=Object.keys(yourObj)
for(设i=0;i b[bKey]。优先级)
返回1;
返回0;
}
你的数组排序(比较)
希望这有帮助
keys = Object.keys(yourObj)
for(let i=0;i<keys.length;i++){
yourArr.push(keys[i])
}
function compare(a,b) {
aKey = Object.keys(a)[0];
bKey = Object.keys(b)[0];
if (a[akey].priority < b[bKey].priority)
return -1;
if (a[aKey].priority > b[bKey].priority )
return 1;
return 0;
}
yourArr.sort(compare)