Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按键对json对象嵌套属性重新排序_Json_Sorting_Object_Key_Nested Loops - Fatal编程技术网

按键对json对象嵌套属性重新排序

按键对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

我有一个如上所述生成的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_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]));