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

Angular插值:含斜杠/的JSON对象键取值异常问题

解决TypeScript中访问带斜杠/的JSON键值问题

嘿,这个问题我之前踩过坑!带特殊字符(比如斜杠/)的对象键确实没法用常规的点语法访问,哪怕你加引号写obj."a/b"也不行——因为点语法对键名的格式有严格要求。

核心解决方案:用方括号语法访问

不管是JavaScript还是TypeScript,只要键名包含非标识符字符(比如斜杠、空格、连字符等),都得用方括号+字符串键名的方式来取值,比如:

const jsonObj = {
  "a/b": 10,
  name: "test"
};

// 正确获取带斜杠的键值
const slashValue = jsonObj["a/b"];
console.log(slashValue); // 输出 10

// 普通键可以继续用点语法
const normalValue = jsonObj.name;
console.log(normalValue); // 输出 test

为什么点语法不行?

TypeScript(和JS)里的点语法要求键名是有效的标识符,标识符的规则是:只能包含字母、数字、下划线_和美元符号$,而且不能以数字开头。斜杠/不属于这些允许的字符,所以点语法会直接报错,哪怕你给键名加引号也没用。

TypeScript类型定义注意事项

如果是提前定义了类型的对象,要确保接口里的键名也用引号包裹,避免类型不匹配:

interface MyJson {
  "a/b": number;
  age: number;
}

const myData: MyJson = {
  "a/b": 20,
  age: 30
};

// 类型安全的访问
const value = myData["a/b"]; // 类型为number

如果是从后端接口获取的JSON字符串,解析后可以用类型断言来指定类型,再用方括号访问:

const jsonStr = '{"a/b": 15, "title": "demo"}';
const parsedObj = JSON.parse(jsonStr) as MyJson;
console.log(parsedObj["a/b"]); // 输出15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:39:04