JavaScript中如何将变量数据存入JSON对象?
解决方法
你当前的问题是模板字符串里的userName没有被解析成变量值,而是被当作普通文本写入了字符串,导致生成的内容不符合JSON语法(JSON要求字符串必须用双引号包裹,裸写的userName不是合法的JSON值)。
这里有两种简单的实现方式:
方法一:先创建JS对象,再转JSON(推荐)
这是最安全、不易出错的方式,尤其适合处理用户输入的内容:
const userName = "Bob"; // 先构建JavaScript对象,直接使用变量赋值 const userObj = { playerName: userName }; // 把JS对象转换成标准JSON字符串 const userJSON = JSON.stringify(userObj);
这样生成的userJSON就是{"playerName":"Bob"},如果用户输入包含双引号、反斜杠等特殊字符,JSON.stringify()会自动转义,保证JSON格式合法。
方法二:模板字符串拼接(需注意特殊字符)
如果一定要用模板字符串,需要用${}包裹变量,同时给变量加上双引号(满足JSON字符串的格式要求):
const userName = "Bob"; const userJSON = `{ "playerName": "${userName}" }`;
但这种方式要注意:如果用户输入的用户名包含双引号(比如Bob"Lee),会直接破坏JSON结构,需要手动处理转义,所以更推荐第一种方法。
内容的提问来源于stack exchange,提问作者8-Track
相关产品推荐
相关产品推荐

