我有一个通过webhook接收的请求,它返回以下对象作为req.body:
{"appId":"7HPEPVBTZGDCP","merchants":{"6RDH804A896K1":[{"objectId":"O9FN4R9BMKXQ0","type":"UPDATE","ts":1686754357822},{"objectId":"OE87DT9330H7R","type":"UPDATE","ts":1686754358007}]}}
我遇到的问题是,虽然我可以通过req.body.merchants访问商家,这是一个键/值对,键是字符串,值是数组:
{"6RDH804A896K1":[{"objectId":"O9FN4R9BMKXQ0","type":"UPDATE","ts":1686754357822},{"objectId":"OE87DT9330H7R","type":"UPDATE","ts":1686754358007}]}
我遇到的问题是,我需要一种方法来访问商家的密钥6RD8H04A896K1
,以及以下值:
[{"objectId":"O9FN4R9BMKXQ0","type":"UPDATE","ts":1686754357822},{"objectId":"OE87DT9330H7R","type":"UPDATE","ts":1686754358007}]
我尝试了以下方法,但没有成功:
const merchantResponse: { id : value} = req.body.merchants;
但这似乎也不管用有人能告诉我如何将这个嵌套的键/值对转换为JSON对象并访问其值吗?问题是我没有对象键,否则我可以将其称为:
const merchantResponse = req.body['6RDH804A896K1'];
有人有解决这个问题的办法吗?
2条答案
按热度按时间lg40wkob1#
如果你需要得到
merchants
,你知道你至少需要抓住那个键。只需获取对象值并访问第一个值。
TypeScript方式
如果你在TypeScript中这样做,你可以尝试:
在看到你的问题的答案后,你可以弹出条目中的第一个条目,并将它们的键值对解构为变量,如下所示:
带有可选链接和防护装置的安全版本:
zed5wv102#
事实证明,有一种方法可以在不知道键的情况下获得键/值对的值,即首先将其转换为数组。可能不是最好的,但以下是我的解决方案。
这将merchantId设置为“6 RDH 804 A896 K1”,这就是我试图做的。