JavaScript中如何将含单引号的JSON字符串转换为列表?
单引号类JSON字符串转列表的解决方案
你遇到的报错是因为标准JSON要求字符串必须用双引号包裹,你的输入属于JS/Python的数组字面量语法,不符合JSON规范,所以JSON.parse无法直接解析,可根据使用的编程语言选择对应方案:
JavaScript 环境
- 方案1:替换单引号后解析(仅适用于字符串内容中无嵌套单引号的场景)
const rawStr = "[[1, 'group1', '#5bc6e1'], [2, 'group2', '#8ec936']]"; // 替换所有单引号为双引号 const standardJsonStr = rawStr.replaceAll("'", '"'); const resultList = JSON.parse(standardJsonStr);
- 方案2:字面量直接解析(适用于所有符合JS语法的输入,要求输入来源完全可控,避免恶意代码执行风险)
const rawStr = "[[1, 'group1', '#5bc6e1'], [2, 'group2', '#8ec936']]"; const resultList = new Function(`return ${rawStr}`)();
Python 环境
使用ast.literal_eval安全解析,无需处理引号,同时避免代码注入风险:
import ast raw_str = "[[1, 'group1', '#5bc6e1'], [2, 'group2', '#8ec936']]" result_list = ast.literal_eval(raw_str)
内容的提问来源于stack exchange,提问作者Szymi
相关产品推荐
相关产品推荐

