Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当值用引号括起来时,如何将Javascript对象值转换为数组?_Javascript_Javascript Objects - Fatal编程技术网

当值用引号括起来时,如何将Javascript对象值转换为数组?

当值用引号括起来时,如何将Javascript对象值转换为数组?,javascript,javascript-objects,Javascript,Javascript Objects,如何将这个字符串形式的javascript对象值转换为数组,去掉外部引号,只留下括号?尝试使用obj[“text font”]=obj[“text font”].split(“”).join(“”;)未成功 当前 text-font: "['Open Sans Regular', 'Arial Unicode MS Regular']" 有意 text-font: ['Open Sans Regular', 'Arial Unicode MS Regular'] 可能使用

如何将这个字符串形式的javascript对象值转换为数组,去掉外部引号,只留下括号?尝试使用
obj[“text font”]=obj[“text font”].split(“”).join(“”;
)未成功

当前

text-font: "['Open Sans Regular', 'Arial Unicode MS Regular']"
有意

text-font: ['Open Sans Regular', 'Arial Unicode MS Regular']
可能使用**,但要注意安全问题,请参见下文

让obj={
“文本字体”:“['Open Sans Regular','Arial Unicode MS Regular']”
}
日志(eval(obj['text-font']))
//修复对象
obj['text-font']=eval(obj['text-font']);

console.log(obj)
您可以将单引号替换为双引号,然后使用JSON.parse()将其转换为实际的字符串数组

obj[“text font”]=JSON.parse(obj[“text font”].replaceAll(“,”))
有关更多信息,请查看此处:

如果您知道字符串中除了分隔字体名称的引号外没有其他引号,可以将它们转换为双引号,然后使用
JSON.parse()
将其转换为数组

obj['text-font'] = JSON.parse(obj['text-font'].replace(/'/g, '"'));

如果字符串是有效的JSON(使用双引号,而不是单引号),则会更容易。然后您可以执行以下操作:
JSON.parse(str)
为什么要使用
split(“”)
?字符串中没有
字符。这是从哪里来的?也许您可以修复源代码以生成一个普通数组或有效的JSON,而不是这种非标准格式。@Barmar返回并修复了源代码,用逗号分隔的字符串发送内容,然后使用obj[“text font”]。拆分(“,”);感谢您的建议问题在于数组元素位于单括号而不是双括号之间,这就是JSON.parse无法工作的原因。在答复之前测试您的解决方案是一个很好的措施,这样您将来可以给出更好的答案!你说得对。谢谢你的评论。我现在已经纠正了这个错误。在回答之前,至少包括一个横幅,上面有
eval
的缺点和安全漏洞@FZs-很好,完成了。如果需要,请随时详细说明。