字符串到对象

时间:2012-12-25 02:11:51

标签: javascript

所以基本上我有这个代码:

var string = '{name: "bob", height: 4, weight: 145}';

我想知道是否可以将该字符串转换为对象。 这样我就可以用

string.name, string.height, and string.weight

(我正在从数据库中检索字符串变量,所以我不能只删除引号并首先将其作为对象)

3 个答案:

答案 0 :(得分:3)

正如伊戈尔所建议的那样,eval肯定会起作用但很容易受到攻击。

相反,您可以使用库来为您解析它。以下链接中有以下选项:

Eval is evil... So what should I use instead?

答案 1 :(得分:1)

我不会将string用于变量名,但是:

var obj = eval(string);
alert(obj.name);

或者您可以使用jQuery.parseJSON:api.jquery.com/jQuery.parseJSON。

答案 2 :(得分:1)

您的字符串似乎格式不正确。要使用JSON.parse甚至jQuery.parseJSON方法,您的密钥必须包含语音标记("),如下所示:

var str = '{"name": "bob", "height": 4, "weight": 145}';
var obj = JSON.parse(str);

您可以通过添加console.log(obj);​作为最后一行来测试。这是我的jsFiddle example

因此,请尝试查看是否可以使用我建议的格式从服务器下载数据,然后可以轻松地将其解析为JavaScript对象。