You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确访问JSON中带连字符的字段,例如'special-defense'?

带连字符的JSON字段访问方法

报错原因

JavaScript 对象的点语法仅支持访问符合标识符命名规范的属性,属性名只能包含字母、数字、下划线、$符号,且不能以数字开头,也不允许出现连字符、空格这类特殊字符。
你写的datas.stats.special-defense会被JS引擎解析为datas.stats.special减去defense,属于运算逻辑而非属性访问,自然会抛出语法错误;点语法也不支持直接包裹引号声明属性名,所以第二种写法同样不符合语法规则。

正确访问方式

使用方括号语法,将带特殊字符的属性名以字符串形式传入即可:

const specialDefenseValue = datas.stats['special-defense']

扩展说明

方括号语法的适用场景远不止带连字符的属性,以下场景都可以用方括号访问属性:

  • 属性名包含空格、特殊符号
  • 属性名为纯数字
  • 需要通过变量动态读取属性值
// 变量动态访问示例
const propName = 'special-defense'
const value = datas.stats[propName]

内容的提问来源于stack exchange,提问作者m ihsan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:09:02