【发布时间】:2021-05-02 21:47:43
【问题描述】:
我想从这个 json 对象中检索带有键“2021-05-14”的选项。
{
stock: {
zip: '95014',
lastUpdated: '05/02/2021'
},
options: [
{ '2021-05-07': [Object] },
{ '2021-05-14': [Object] },
{ '2021-05-21': [Object] },
{ '2021-05-28': [Object] },
{ '2021-06-04': [Object] },
{ '2021-06-18': [Object] }
]
}
我试过了:
var options;
var expirationSeries;
options = res.body.options; // res.body is the json-object
for (var key in options)
{
if (key=='2021-05-14') {
expirationSeries = options[key];
};
}
console.log(expirationSeries);
然后我收到错误“未定义”。
如何正确地做到这一点?
【问题讨论】:
-
您是否调试过您的代码或添加
console.log(key)以查看它返回的内容?您需要遍历数组并检查每个对象是否具有键'2021-05-14' -
您的 JSON 选项似乎是 json 对象数组,所以 key 是一个数字,而不是您上面提到的日期。
-
这可以通过多种方式完成,但也许对您的代码稍作改动,这可能会更简单。如果您的
options集合的顺序不重要,您可以将其转换为对象而不是数组,只需使用options{'2021-05-07': [Object],'2021-05-14': [Object],'2021-05-21': [Object]},只需使用options['2021-05-14']即可实现您想要做的事情 -
使用
console.log看看你得到了什么。请注意,for (var k in ["first", "second"]) {会给出0, 1,所以我想你会发现 key 是一个数字。
标签: javascript json key-value