使用JavaScript调用FileMaker API时,如何访问含::的关联表字段变量
解决JavaScript访问含
::的FileMaker API字段问题 这问题挺常见的——当JavaScript对象的属性名包含::这类特殊字符时,点符号(.)就没法正常工作了,得换成方括号语法来访问才行。
为什么点符号不行?
JavaScript的点符号要求属性名是合法的标识符(不能包含特殊字符、不能以数字开头),而::属于非标识符字符,直接写allFEC[i].pro_FIP::_id_FEC会触发语法错误,解释器根本识别不了这个属性名的格式。
修改后的代码
把带::的属性名用字符串包裹,放进方括号里就能正常访问了:
for(var i=0;i<allFEC.length;i++) { programmesMovies.push({ "isOnline_b":1, "_idWeb_c": allFEC[i]["pro_FIP::_id_FEC"] }); }
更清晰的写法(可选)
如果这类带特殊字符的字段名较多,你可以把属性名存成变量,让代码更易读、更易维护:
for(var i=0;i<allFEC.length;i++) { const fecIdField = "pro_FIP::_id_FEC"; programmesMovies.push({ "isOnline_b":1, "_idWeb_c": allFEC[i][fecIdField] }); }
额外提醒
要是你是误把FileMaker的关联表嵌套结构写成了::(比如pro_FIP是一个嵌套对象,_id_FEC是它的子属性),那正确的写法应该是allFEC[i].pro_FIP._id_FEC——但根据你的描述,字段名本身就带::标识,所以前面的方括号方法才是适配你场景的解决方案。
内容的提问来源于stack exchange,提问作者Korpin
相关产品推荐
相关产品推荐

