首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当Javascript对象值被用引号包装时,如何将其转换为数组?

当Javascript对象值被用引号包装时,如何将其转换为数组?
EN

Stack Overflow用户
提问于 2021-05-28 19:51:37
回答 3查看 57关注 0票数 0

如何将这个作为字符串的javascript对象值转换为一个数组,删除外部引号,只留下括号?使用obj["text-font"] = obj["text-font"].split('"').join("");的尝试没有成功。

当前

代码语言:javascript
复制
text-font: "['Open Sans Regular', 'Arial Unicode MS Regular']"

意欲

代码语言:javascript
复制
text-font: ['Open Sans Regular', 'Arial Unicode MS Regular']
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-28 19:56:57

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

代码语言:javascript
复制
obj['text-font'] = JSON.parse(obj['text-font'].replace(/'/g, '"'));
票数 5
EN

Stack Overflow用户

发布于 2021-05-28 19:54:42

您可以用双引号替换单引号,然后使用JSON.parse()将其转换为实际的String数组。

代码语言:javascript
复制
obj["text-font"] = JSON.parse(obj["text-font"].replaceAll("'",'"'))

在这里查看以获得更多信息:MDN : JSON.parse()

票数 3
EN

Stack Overflow用户

发布于 2021-05-28 19:54:35

也许使用埃瓦尔() **,但是要注意安全性问题,请参阅下面

代码语言:javascript
复制
let obj = {
  "text-font": "['Open Sans Regular', 'Arial Unicode MS Regular']"
}

console.log(eval(obj['text-font']))

// to fix the object

obj['text-font'] = eval(obj['text-font']);
console.log(obj)

eval()有安全风险和恶意用户可以使用浏览器中的调试器通过XSS攻击执行自己的javascript --一般的建议是不要轻率地使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67744760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档