按键对json对象嵌套属性重新排序
我有一个如上所述生成的JSON文件。它有12个“颜色组”对象 我要做的是按键重新排列每个组中的属性,使其从10到100。并保持“颜色组”的顺序为01-12。结果如下:按键对json对象嵌套属性重新排序,json,sorting,object,key,nested-loops,Json,Sorting,Object,Key,Nested Loops,我有一个如上所述生成的JSON文件。它有12个“颜色组”对象 我要做的是按键重新排列每个组中的属性,使其从10到100。并保持“颜色组”的顺序为01-12。结果如下: { "color_group_01": { "blue_50": "#4080fb", "blue_40": "#6fa1fc", "blue_30": "#9dc2fd", "blue_20": "#cadefe", "blue_10": "#ebf4ff", "blue_10
{
"color_group_01": {
"blue_50": "#4080fb",
"blue_40": "#6fa1fc",
"blue_30": "#9dc2fd",
"blue_20": "#cadefe",
"blue_10": "#ebf4ff",
"blue_100": "#011338",
"blue_90": "#011d5f",
"blue_80": "#022b8f",
"blue_70": "#053fc4",
"blue_60": "#165cfa"
},
"color_group_02": {
"green_90": "#022d0d",
"green_80": "#044317",
"green_70": "#0e6027",
"green_100": "#071908",
"green_60": "#198038",
"green_50": "#24a148",
"green_40": "#42be65",
"green_30": "#6fdc8c",
"green_20": "#a7f0ba",
"green_10": "#defbe6"
}
}
我正在挣扎如何做到这一点?能不能请一些人帮忙?请不要使用jQuery解决方案:)
首先,您需要使用JSON.parse()将JSON加载到javascript对象中。但是,您的对象并不真正知道它们的键的排序,相反,您可以提取对象的键并相应地对它们进行排序
{
"color_group_01": {
"blue_10": "#ebf4ff",
"blue_20": "#cadefe",
"blue_30": "#9dc2fd",
"blue_40": "#6fa1fc",
"blue_50": "#4080fb",
"blue_60": "#165cfa",
"blue_70": "#053fc4",
"blue_80": "#022b8f",
"blue_90": "#011d5f",
"blue_100": "#011338"
},
"color_group_02": {
"green_10": "#defbe6",
etc...
}
}
然后,您可以循环使用这个keysArray,它现在是所有已排序的键,并从那里访问您的对象
const keysArray = Object.keys(yourObject).sort((a, b) => /* your sort function here */);
keysArray.forEach(key => console.log(yourObject[key]));