TypeScript对象转JSON时键名与传入参数不一致问题咨询
问题原因
你的代码存在两处语法问题导致输出不符合预期:
- 直接写
{ key: value }时,key会被当作固定字符串字面量作为对象的键,不会解析为你传入的参数变量。如果要把动态变量作为对象的键,需要用计算属性名语法,用方括号包裹变量,也就是{ [key]: value }。 - 调用
JSON.stringify时,你又给ObjectToConvert套了一层对象{ ObjectToConvert },相当于序列化的结构是外层键为ObjectToConvert的嵌套对象,也和你预期的单层级结构不符。
修正后代码
public getJson(key: string, value: string) { // 调用方法时传入的参数为:key="attr",value="on" const objectToConvert = { [key]: value } console.log(JSON.stringify(objectToConvert)) // 输出结果为 {"attr":"on"},符合预期 }
内容的提问来源于stack exchange,提问作者Wahéb
相关产品推荐
相关产品推荐

