代码之家  ›  专栏  ›  技术社区  ›  dev.e.loper

将javascript字符串转换为数组

  •  5
  • dev.e.loper  · 技术社区  · 15 年前

    我正在从隐藏的HTML输入字段中检索一个对象数组。我得到的字符串是:

    "{"id":"1234","name":"john smith","email":"jsmith@blah.com"},{"id":"4431","name":"marry doe","email":"mdoe@blah.com"}"
    

    现在我需要再次将其作为对象数组传递。如何将此字符串转换为对象数组?

    3 回复  |  直到 11 年前
        1
  •  12
  •   Gordon Gustafson    15 年前
    var array_of_objects = eval("[" + my_string + "]");
    

    这将字符串作为代码执行,这就是我们需要添加[]以使其成为对象的原因。这也是为数不多的合法使用评估作为其最快和最简单的方式之一。D

        2
  •  7
  •   SLaks    15 年前

    假设 str 持有有效的json语法,您可以简单地调用 eval(str) .

    出于安全考虑,最好使用 JSON parser ,像这样:

    JSON.parse(str);
    

    注意 STR 必须包裹在 [] 成为一个有效的json数组。

        3
  •  0
  •   hadi.sh    11 年前
    var str=eval([{'id':'1','txt':'name1'},{'id':'2','txt':'name2'},{'id':'3','txt':'name3'}])
    for(var i=0;i<str.length;i++)
    {
    alert(str[i].txt);
    }