【问题标题】:Converting string representation of JavaScript array to object [duplicate]将JavaScript数组的字符串表示形式转换为对象[重复]
【发布时间】:2014-07-07 17:34:43
【问题描述】:

是否有一些 javascript 函数可以将已经格式化为数组的字符串转换为数组?

var some_string = "[1,2,3,4]";
var some_array = castAsArray(some_string);
some_array.length // Returns 4.

【问题讨论】:

  • 这是有效的 JSON,所以var some_array = JSON.parse(some_string);。如果实际字符串不是 JSON 数据,则需要采用不同的方法。
  • 你可以使用邪恶的 eval :P
  • @Loktar 我也在考虑评估,但后来我把我的车献给了撒旦,一切都很好。
  • 但是,如果他控制自己的输入,他唯一需要抗衡的就是性能。

标签: javascript arrays json


【解决方案1】:

您要查找的是JSON.parse()。它会获取任何表示JSON (JavaScript Object Notation) 中有效JavaScript 对象的字符串,并将其转换为对象。

var some_string = "[1,2,3,4]";
var some_array = JSON.parse(some_string);
some_array.length // Returns 4.

【讨论】:

  • 生活有时很简单......
【解决方案2】:

即使 eval 也能解决问题。使用 eval 不是很好的做法,但这只是一个建议。

a="[1,2,3,4]"
b=eval(a)

了解使用 eval 总是一个坏主意(在大多数情况下总是意味着),这是一个很好的 SO 问题和答案来讨论这个问题。

Eval-Don't use it.

【讨论】:

  • 如果您要投反对票,请发表评论。他正在努力提供帮助。 @Shmiddty,很高兴您知道为什么这是错误的,但在某些时候您不知道。请解释原因,而不是“tsks”。
  • +1 这是一个有效的解决方案,在某些情况下可能是最好的解决方案。
  • @Jack_of_All_Trades 我没有投反对票,但仅仅因为它有效,并不意味着它是好的代码。通常没有正当理由像这样使用eval。答案应该提供好的代码,而不是“建议”
  • 反对票不是我的,但很可能是因为 JSON.parse() 是执行此操作的实际方法,在这种情况下使用 eval() 只会让您受到攻击。跨度>
  • @sphanley:这是对eval 的过度反应。 JSON.parse 不是“实际的方式”。如果有多种不同的方式,那是一种。最好的方法将取决于整体情况。
猜你喜欢
  • 2020-07-21
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-20
  • 2019-12-03
  • 1970-01-01
相关资源
最近更新 更多