如何将字符串形式的数组转换为数组?移除首尾单引号可行吗?
当然可以转换!移除首尾单引号是可行的方案
嘿,刚好碰到过类似的场景!你的这个字符串本质上是被单引号包裹的标准JSON数组,所以移除首尾的单引号之后,剩下的内容就是完全符合JSON规范的格式,直接用JSON.parse()就能转成JavaScript数组了。
具体操作示例
这里给你写个可运行的代码片段:
// 你的原始字符串 const rawString = '[{"stuff_width":200,"_id":"cPEzHYNLHhyHbtK9MJ7F","stuff_weight":400,"stuff_length":100,"image":["cPEzHYNLHhyHbtK9MJ7F_0","cPEzHYNLHhyHbtK9MJ7F_1"],"quantity":5,"stuff_type":"Cunstruction Material \/ Cement","stuff_height":300},{"stuff_width":200,"_id":"F5OhdfGnoHpffkpR82KK","stuff_weight":300,"stuff_length":400,"image":["F5OhdfGnoHpffkpR82KK_0"],"quantity":5,"stuff_type":"Furniture \/ Wood Items","stuff_height":400}]'; // 移除首尾的单引号 const validJsonString = rawString.slice(1, -1); // 解析为数组 const stuffArray = JSON.parse(validJsonString); // 测试输出,会看到完整的数组结构 console.log(stuffArray);
为什么这个方法可行?
你的原始内容里,所有的字符串都是用双引号包裹的(符合JSON的强制要求),而且没有嵌套的单引号干扰,所以移除外层单引号后,剩下的就是标准的JSON数组格式,JSON.parse()可以完美解析。
额外提醒
如果你的字符串内部存在单引号(比如某个stuff_type里用了单引号),那直接移除外层单引号可能会导致JSON解析失败。但在你提供的这个例子里完全没有这个问题,放心用就行。另外,别用eval()来做这件事——虽然也能生效,但eval()会执行任意代码,存在安全风险,JSON.parse()才是更稳妥的选择。
内容的提问来源于stack exchange,提问作者Foram Sojitra
相关产品推荐
相关产品推荐

