如何移除JavaScript字符串变量的双引号并转为对象?
移除JavaScript字符串外层双引号并转为对象数组
你的核心问题是:当前aProd是一个单引号格式的JSON字符串,直接放进数组后输出的是带外层双引号的字符串,你需要的是数组中存储JavaScript对象而非字符串。
之前尝试失败的原因
你用replace(/"/g, "")是错误的:"是HTML转义后的双引号实体,但你的代码里aProd是普通JS字符串,不存在这种实体;而且就算替换成功,得到的还是字符串,输出时依然会带外层双引号。
正确解决方案
需要先将非标准的单引号JSON转为标准JSON,再解析为对象,最后放入数组:
var aProd = "{'name':'Product One','description':'Description Product One','unit_amount':{'currency_code':'USD','value':'247','sku':'h545'},'quantity':'1'}"; // 1. 把字符串中的单引号替换为双引号,转为标准JSON格式 var validJson = aProd.replace(/'/g, '"'); // 2. 解析JSON字符串为JavaScript对象 var prodObject = JSON.parse(validJson); // 3. 将对象放入数组 var item = [prodObject]; console.log(item);
输出结果
运行后控制台会输出:
[ { name: 'Product One', description: 'Description Product One', unit_amount: { currency_code: 'USD', value: '247', sku: 'h545' }, quantity: '1' } ]
完全符合你想要的无外层双引号的对象数组格式。
内容的提问来源于stack exchange,提问作者fabiodesouza
相关产品推荐
相关产品推荐

