我有这个JSON响应,我想将其解扁平化,但每个可能的解扁平化库都只是将其追加到数组中,我想突出显示3个对象,如图所示,有没有更简单的方法?
{
"highlights.id": ["9ab80883-e8eb-4710-9818-e476fc32e356", "824ff2a0-1f17-44b7-b99f-ce227af12ea7", "4a9e35c5-e03f-41d6-a4b5-635b08bc1bbe", ],
"highlights.key": ["0", "1", "2"],
"highlights.value": ['16" Pedestal Fan', "High Quality Metal Grill ", "Heavy Duty Motor with 2000 RPM", ],
"highlights.productId": ["655ea6af-9e5c-401e-b317-ea1fac55857f", "655ea6af-9e5c-401e-b317-ea1fac55857f", "655ea6af-9e5c-401e-b317-ea1fac55857f", ],
"highlights.createdAt": ["2023-03-15T07:27:39.150Z", "2023-03-15T07:27:39.150Z", "2023-03-15T07:27:39.150Z", ],
"highlights.updatedAt": ["2023-03-15T07:27:39.150Z", "2023-03-15T07:27:39.150Z", "2023-03-15T07:27:39.150Z", ]
}
我想要的是highlights:[ {// id, key, value, productId}, {}, {}]
但我越来越highlights:{ id:[], productId:[], key:[], value:[]
4条答案
按热度按时间eufgjt7s1#
使用Array.map
您可以使用
.map
函数循环通过键只是为了使其一致,并返回一个新的对象,您想要的方式,然后存储到新的突出显示数组。演示
动态解决方案:
如果希望它更动态,还可以循环JSON对象的键
i86rm4rw2#
抱歉,无法转换为
因为在你的数组
highlights
中有一个对象。你必须声明一个对象键。我有一个解决方案,使用Class
和constructor
如果你的意思是
那我对你的解决办法就是...
在这个用例中,类和对象之间的区别是命名约定,例如object允许您使用
spacing for naming key
,而您不能在constructor
中这样做(_
或大写键可以更容易区分)xzv2uavs3#
注意:在javascript中更新对象时,[.](其中.是不带方括号的动态键)将成为静态键。
blpfk2vs4#
你可以通过
data
数组迭代来实现。如果你想得到一个简单的答案,试试这个:1.第一种方法:
1.第二种方法: