如何按数组对象索引解析API返回的JSON提取指定字段值
代码不生效的核心原因
你当前的写法存在语法冗余错误:在数组索引的方括号前面多加了一个多余的点号,JS解析器碰到这种不符合语法规则的写法时会直接报错,自然无法正常取值。
修正后的实现
你写的JSON解析逻辑是完全正常的:var data4 = JSON.parse(message.payloadString);
只需要去掉数组索引前的多余点号,就能正常拿到目标字段值:fcperiod2 = data4[1].period;
需要注意的细节
- JS的数组是0起始索引规则:数组的元素顺位和索引值差1。你给出的JSON结构里,值为
202103092000的period是数组的第一个元素,对应索引为0,如果要取这个值,需要把索引改成0,也就是data4[0].period;如果要取顺位排第二、值为202103092100的period,才用索引1。可以根据自己实际要取的目标值对应调整索引数字。 - JS属性访问的基本规则:点号后面直接跟属性名(比如取对象的period属性就写
.period);方括号直接跟在变量名后面用来访问数组元素、或是取带特殊字符的动态属性,两种写法搭配使用时不要在方括号前额外加点号。
写法对比参考:
- 错误写法:
data4.[1].period(方括号前多了.,触发语法解析错误)- 正确写法:
data4[1].period(符合JS语法规则)
内容的提问来源于stack exchange,提问作者Baobab
相关产品推荐
相关产品推荐

