JSON将级别转换为数组(Javascript)

时间:2017-02-08 15:28:19

标签: javascript json churchtools

我从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"}
]}

2 个答案:

答案 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;)