Node.js中如何将字符串转换为对象数组?
解决Node.js中字符串转对象数组的问题
你的目标是把带有单引号和换行的类JSON字符串转换成JavaScript对象数组,这里提供两种可行方案:
方案一:标准化为合法JSON后解析(推荐)
JSON规范要求键和字符串值必须用双引号,所以先把字符串里的单引号替换为双引号,再用JSON.parse()解析即可。如果原字符串有换行,也可以一并去除避免解析问题:
// 原始字符串 const resultStr = "[{'path': '/home/media/fileyear.jpg', 'vectors': [0.1234, 0.457, 0.234]}, \n{'path': '/home/media/fileyear2.jpg', 'vectors': [0.134, 0.557, 0.634]}]"; // 替换单引号为双引号,去除换行符 const validJson = resultStr.replace(/'/g, '"').replace(/\n/g, ''); // 解析为对象数组 const objArray = JSON.parse(validJson); console.log(objArray);
方案二:使用eval直接转换(需谨慎)
如果确定字符串来源完全可信(不会包含恶意代码),可以直接用eval()把字符串转为对象数组:
const resultStr = "[{'path': '/home/media/fileyear.jpg', 'vectors': [0.1234, 0.457, 0.234]}, \n{'path': '/home/media/fileyear2.jpg', 'vectors': [0.134, 0.557, 0.634]}]"; const objArray = eval(resultStr); console.log(objArray);
注意:eval()会执行字符串中的任意代码,存在安全风险,只有在字符串来源绝对可靠时才建议使用,优先选择方案一。
内容的提问来源于stack exchange,提问作者Rajesh Kumar
相关产品推荐
相关产品推荐

