Javascript-JSON-嵌套和分组

Javascript-JSON-嵌套和分组,javascript,json,d3.js,Javascript,Json,D3.js,我有以下JSON对象,我需要按状态取消嵌套、重新组合和重新嵌套。我知道必须执行某种for循环和group by操作 [ { "Date": "2000-01-01T08:00:00.000Z", "Florida": "4626", "New York": "210", "Pennsylvania": "1500", "Virginia": "9", "West Virginia": "1400", "Illinois": "12206", "Indiana": "2098", "Kansas"

我有以下JSON对象,我需要按状态取消嵌套、重新组合和重新嵌套。我知道必须执行某种for循环和group by操作

[
{
"Date": "2000-01-01T08:00:00.000Z",
"Florida": "4626",
"New York": "210",
"Pennsylvania": "1500",
"Virginia": "9",
"West Virginia": "1400",
"Illinois": "12206",
"Indiana": "2098",
"Kansas": "34463",
"Kentucky": "3465",
"Michigan": "7907",
"Missouri": "94",
"Nebraska": "2957",
"North Dakota": "32719",
"Ohio": "6575",
"Oklahoma": "69976",
"South Dakota": "1170",
"Tennessee": "346",
"Alabama": "10457",
"Arkansas": "7154",
"Louisiana": "105425",
"Mississippi": "19844",
"New Mexico": "67198",
"Texas": "443397",
"Colorado": "18481",
"Montana": "15428",
"Utah": "15636",
"Wyoming": "60726",
"Alaska": "355199",
"Alaska South": "10590",
"Arizona": "59",
"California": "271132",
"Nevada": "621",
"": ""
},
{
"Date": "2001-01-01T08:00:00.000Z",
"Florida": "4426",
"New York": "166",
"Pennsylvania": "1620",
"Virginia": "11",
"West Virginia": "1226",
"Illinois": "10092",
"Indiana": "2022",
"Kansas": "33942",
"Kentucky": "2969",
"Michigan": "7375",
"Missouri": "91",
"Nebraska": "2922",
"North Dakota": "31691",
"Ohio": "6051",
"Oklahoma": "68531",
"South Dakota": "1255",
"Tennessee": "351",
"Alabama": "9334",
"Arkansas": "7592",
"Louisiana": "104610",
"Mississippi": "19528",
"New Mexico": "68001",
"Texas": "424297",
"Colorado": "16520",
"Montana": "15920",
"Utah": "15252",
"Wyoming": "57433",
"Alaska": "351411",
"Alaska South": "11500",
"Arizona": "59",
"California": "260663",
"Nevada": "572",
"": ""
},
{
"Date": "2002-01-01T08:00:00.000Z",
"Florida": "3634",
"New York": "164",
"Pennsylvania": "2324",
"Virginia": "25",
"West Virginia": "1456",
"Illinois": "11100",
"Indiana": "1962",
"Kansas": "33380",
"Kentucky": "2721",
"Michigan": "7218",
"Missouri": "95",
"Nebraska": "2782",
"North Dakota": "30803",
"Ohio": "5631",
"Oklahoma": "66421",
"South Dakota": "1214",
"Tennessee": "275",
"Alabama": "8636",
"Arkansas": "7252",
"Louisiana": "93321",
"Mississippi": "19371",
"New Mexico": "67562",
"Texas": "405776",
"Colorado": "20522",
"Montana": "16990",
"Utah": "13771",
"Wyoming": "54801",
"Alaska": "359382",
"Alaska South": "11303",
"Arizona": "63",
"California": "257898",
"Nevada": "553",
"": ""
}
]
我想将上面的内容转换成以下格式,其中state key是state name,production key是一组字典,其中包含年份和当年的产量

[
{
"state": "California",
"production": [
  {
    "Date": "2000-01-01T08:00:00.000Z",
    "production": 1000
  },
  {
    "Date": "2001-01-01T08:00:00.000Z",
    "production": 2000
  }
]
},
{
"state": "New York",
"production": [
  {
    "Date": "2000-01-01T08:00:00.000Z",
    "production": 4000
  },
  {
    "Date": "2001-01-01T08:00:00.000Z",
    "production": 5000
  }
]
}
]

请让我知道需要执行哪些操作才能达到上述格式。谢谢大家!

也许这对你有用,用一些迭代和一个对象作为参考

var data=[{“日期”:“2000-01-01T08:00:00.000Z”,“佛罗里达州”:“4626”,“纽约州”:“210”,“宾夕法尼亚州”:“1500”,“弗吉尼亚州”:“9”,“西弗吉尼亚州”:“1400”,“伊利诺伊州”:“12206”,“印第安纳州”:“2098”,“堪萨斯州”:“34463”,“肯塔基州”:“3465”,“密歇根州”:“7907”,“密苏里州”:“94”,“内布拉斯加州”:“2957”,“北达科他州”:“32719”,“俄亥俄州”:“6575”,“俄克拉荷马州”“69976”,“南达科他州”:“1170”,“田纳西州”:“346”,“阿拉巴马州”:“10457”,“阿肯色州”:“7154”,“路易斯安那州”:“105425”,“密西西比州”:“19844”,“新墨西哥州”:“67198”,“德克萨斯州”:“443397”,“科罗拉多州”:“18481”,“蒙大拿州”:“15428”,“犹他州”:“15636”,“怀俄明州”:“60726”,“阿拉斯加”:“355199”,“阿拉斯加南部”:“10590”,“亚利桑那州”:“59”,“加利福尼亚州”:“271132”,“内华达州”:“621”、“伊利诺伊州”:“10092”、“印第安纳州”:“2022”、“堪萨斯州”:“33942”、“肯塔基州”:“2969”、“密歇根州”:“7375”、“密苏里州”:“91”、“内布拉斯加州”:“2922”、“北达科他州”:“91”、“内布拉斯加州”:“2922”、“北达科他州”:“31691”、“俄亥俄州”:“6051”俄克拉荷马州:“68531”,“南达科他州”“1255”,“田纳西州”“351”,“阿拉巴马州”“9334”,“阿肯色州”“7592”,“路易斯安那州”“104610”,“密西西比州”“19528”,“新墨西哥州”“68001”,“德克萨斯州”“424297”,“科罗拉多州”“16520”,“蒙大拿州”“15920”,“犹他州”“15252”,“怀俄明州”“57433”,“阿拉斯加”“351411”,“阿拉斯加南部”“11500”,“亚利桑那州”“59”,“加利福尼亚州”:内华达州:572,印第安纳州:1962,堪萨斯州:33380,肯塔基州:2721,密歇根州:7218,密苏里州:95,内布拉斯加州:2782,北达科他州:30803,俄亥俄州:5631,“俄克拉荷马州”:“66421”,“南达科他州”:“1214”,“田纳西州”:“275”,“阿拉巴马州”:“8636”,“阿肯色州”:“7252”,“路易斯安那州”:“93321”,“密西西比州”:“19371”,“新墨西哥州”:“67562”,“得克萨斯州”:“405776”,“科罗拉多州”:“20522”,“蒙大拿州”:“16990”,“犹他州”:“13771”,“怀俄明州”:“54801”,“阿拉斯加州”:“359382”,“阿拉斯加州南部”:“11303”,“亚利桑那州”:“63”,”加利福尼亚州“:”257898“,”内华达州“:”553“,”:“}],
分组=[];
data.forEach(函数(a){
Object.keys(a).forEach(函数(k){
如果(k!=“日期”){
如果(!此[k]){
这个[k]={state:k,production:[]};
分组。推(此[k]);
}
this[k].production.push({Date:a.Date,production:a[k]});
}
},这个);
},Object.create(null));

document.write(''+JSON.stringify(grouped,0,4)+'');
也许这对您有用,有一些迭代和一个对象作为参考

var数据=[{“日期”:“2000-01-01T08:00:00.000Z”,“佛罗里达州”:“4626”,“纽约州”:“210”,“宾夕法尼亚州”:“1500”,“弗吉尼亚州”:“9”,“西弗吉尼亚州”:“1400”,“伊利诺伊州”:“12206”,“印第安纳州”:“2098”,“堪萨斯州”:“34463”,“肯塔基州”:“3465”,“密歇根州”:“7907”,“密苏里州”:“94”,“内布拉斯加州”:“2957”,“北达科他州”:“32719”,“俄亥俄州”:“6575”,“俄克拉何马州”:“南达科他州”“田纳西州”“阿拉巴马州”“10457”“阿肯色州”“7154”“路易斯安那州”“105425”“密西西比州”“19844”“新墨西哥州”“67198”“德克萨斯州”“443397”“科罗拉多州”“18481”“蒙大拿州”“15428”“犹他州”“15636”“怀俄明州”“60726”“阿拉斯加州”“355199”“阿拉斯加南部”“10590”“亚利桑那州”“59”“加利福尼亚州”“271132”,“内华达州”:“621”、“伊利诺伊州”:“10092”、“印第安纳州”:“2022”、“堪萨斯州”:“33942”、“肯塔基州”:“2969”、“密歇根州”:“7375”、“密苏里州”:“91”、“内布拉斯加州”:“2922”、“北达科他州”:“91”、“内布拉斯加州”:“2922”、“北达科他州”:“31691”、“俄亥俄州”:“6051”俄克拉荷马州:“68531”,“南达科他州”“1255”,“田纳西州”“351”,“阿拉巴马州”“9334”,“阿肯色州”“7592”,“路易斯安那州”“104610”,“密西西比州”“19528”,“新墨西哥州”“68001”,“德克萨斯州”“424297”,“科罗拉多州”“16520”,“蒙大拿州”“15920”,“犹他州”“15252”,“怀俄明州”“57433”,“阿拉斯加”“351411”,“阿拉斯加南部”“11500”,“亚利桑那州”“59”,“加利福尼亚州”:内华达州:572,印第安纳州:1962,堪萨斯州:33380,肯塔基州:2721,密歇根州:7218,密苏里州:95,内布拉斯加州:2782,北达科他州:30803,俄亥俄州:5631,“俄克拉荷马州”:“66421”,“南达科他州”:“1214”,“田纳西州”:“275”,“阿拉巴马州”:“8636”,“阿肯色州”:“7252”,“路易斯安那州”:“93321”,“密西西比州”:“19371”,“新墨西哥州”:“67562”,“得克萨斯州”:“405776”,“科罗拉多州”:“20522”,“蒙大拿州”:“16990”,“犹他州”:“13771”,“怀俄明州”:“54801”,“阿拉斯加州”:“359382”,“阿拉斯加州南部”:“11303”,“亚利桑那州”:“63”,”加利福尼亚州“:”257898“,”内华达州“:”553“,”:“}],
分组=[];
data.forEach(函数(a){
Object.keys(a).forEach(函数(k){
如果(k!=“日期”){
如果(!此[k]){
这个[k]={state:k,production:[]};
分组。推(此[k]);
}
this[k].production.push({Date:a.Date,production:a[k]});
}
},这个);
},Object.create(null));

document.write(“”+JSON.stringify(grouped,0,4)+“”);
生产值来自原始JSON…“佛罗里达州”:“4626”、“纽约州”:“210”、“宾夕法尼亚州”:“1500”…生产值来自原始JSON。。。