尝试从JSON数据集获取指定字段返回undefined的问题排查请求
为什么获取字段值返回undefined?排查与解决方法
我来帮你定位问题——你拿到undefined的核心原因是对JSON结构的访问方式错误,咱们拆解来看:
问题出在哪?
看你提供的JSON数据集:
forexBOPCategory是一个普通对象(用{}包裹),但你在代码里用了数组索引forexBOPCategory[0]去访问它,对象根本没有索引属性,所以这一步直接返回undefined,后续的链式访问自然也都是undefined。- 只有
forexBOPCategoryDocumentsList是数组结构,这部分的[0]索引访问是正确的,但因为前面的对象访问出错了,所以整体取不到值。
修正后的代码
把多余的数组索引[0]去掉就可以了,同时保留可选链?.保证代码安全性:
// 获取documentShortDescription this.formData.documentShortDescription = response.forexBOPCategory?.forexBOPCategoryDocumentsList[0].documentShortDescription; // 获取rulingOrSubcategoryDescription this.formData.rulingOrSubcategoryDescription = response.forexBOPCategory?.rulingOrSubcategoryDescription;
额外小建议
你可以先在控制台打印console.log(response.forexBOPCategory),直观确认它的结构是对象而非数组,以后遇到类似的取值问题,先打印目标结构,能更快定位错误~
内容的提问来源于stack exchange,提问作者RRB
相关产品推荐
相关产品推荐

