JavaScript如何提取键名包含空格的JSON对象属性值
问题解决方法
你的代码返回null是因为不符合JavaScript对象的属性访问规则:当属性名包含空格,或者属性名存储在变量中时,不能使用.运算符访问,必须使用[]方括号语法。你写的item.inputFormalityTone是尝试访问对象中名为inputFormalityTone的键,和你实际存在的带空格的键名input formality tone不匹配,所以取不到值。
修正后代码
function test() { var file = DriveApp.getFileById("19ncMpYna8VEBCVfvMjbuImFZXPx2Jlw0"); var filecontent = file.getBlob().getDataAsString(); var jsonparse = JSON.parse(filecontent); // 提前定义目标键名变量 const targetKey = "input formality tone"; for (var key in jsonparse) { var arr = jsonparse[key]; for (var i=0; i<arr.length; i++) { var item = arr[i]; Logger.log(item) // 改用方括号语法访问带空格的属性 Logger.log(item[targetKey]) // 也可以直接写成 Logger.log(item["input formality tone"]),效果一致 } } }
补充属性访问规则说明
- 当属性名仅由字母、数字、下划线组成,无空格和特殊字符时,可以用点语法访问,例如
item.speaker、item.utteranceID - 当属性名包含空格、特殊字符,或属性名存储在变量中时,必须用方括号语法访问
内容的提问来源于stack exchange,提问作者Thierry Andriatsilavoarison
相关产品推荐
相关产品推荐

