我从ChurchTools API获得了一个非常糟糕的数据结构。但是我需要使用Loop中的数据来进行一些if和else测试。
我从API获得的数据:
{
"7":{ "bezeichnung": "Sample 1", "startdate" : "2010-02-01" },
"52":{ "bezeichnung": "Sample 2", "startdate" : "2011-04-23"},
"53":{ "bezeichnung": "Sample 3", "startdate" : "2016-07-02"},
"65":{ "bezeichnung": "Sample 4", "startdate" : "2013-04-21"},
"84":{ "bezeichnung": "Sample 5", "startdate" : "2012-02-25"},
"85":{ "bezeichnung": "Sample 6", "startdate" : "2016-08-22"}
}
我想把它转换成这样的东西:
{"arr":[
{ "bezeichnung": "Sample 1", "startdate" : "2010-02-01" },
{ "bezeichnung": "Sample 2", "startdate" : "2011-04-23"},
{ "bezeichnung": "Sample 3", "startdate" : "2016-07-02"},
{ "bezeichnung": "Sample 4", "startdate" : "2013-04-21"},
{ "bezeichnung": "Sample 5", "startdate" : "2012-02-25"},
{ "bezeichnung": "Sample 6", "startdate" : "2016-08-22"}
]}
答案 0 :(得分:0)
您可以使用Object.keys
获取密钥并使用Array#map
进行迭代,并返回包含内部对象的数组。
.as-console-wrapper { max-height: 100% !important; top: 0; }
{{1}}
答案 1 :(得分:-1)
for..in循环将完美运行:
for(key in yourdata){
console.log(key, yourdata[key]);
}
如果你真的想转换成真正的数组,请执行:
Object.values(yourdata);//[{},{}]
比得到一个对象数组。如果你想要一个包含"数据的数组"价值,你可以这样做:
Object.values(yourdata).map(el=>el.data);// ["Sample1","Sample2",...]
顺便说一句,欢迎来到SO;)