如何将字符串对象转换为真实对象

时间:2013-01-17 17:00:23

标签: jquery json string hash

Perhabs这个问题应该命名为:如何通过哈希为jQuery对象制作动画。

无论如何......如何将字符串转换为对象?我已尝试JSON.parse$.parseJSON,但收到以下错误消息:Uncaught SyntaxError: Unexpected token t

我尝试完成的任务:我想通过哈希动画jQuery对象。

这是我目前的状态(也许有更好的方法?然后告诉我!):

var params = (location.hash || '#').substr(1).split('|');
$.map(params, function (e) {
    var parts = e.split('=');
    $(parts[0]).animate(parts[1]);
    console.log(typeof parts[1]); // 2 `string`
});

使用此fiddle并将这些哈希值附加到网址:

##foo={top:100,left:100}|#bar={top:100,right:100}

(抱歉markdown不允许我直接将这种哈希附加到链接上。)

2 个答案:

答案 0 :(得分:0)

JSON比JavaScript更严格。对于JSON评估,参数必须如此:

{"top":100,"right":100}

如果你不想那样,你必须求助于'eval()

var params = eval('(' + parts + ')');

但是,由于您允许通过URL执行任意JS,这可能不是您正在寻找的方式。

答案 1 :(得分:0)

您的JSON无效。 (将其粘贴到http://jsonlint.com/并自行查看。)

JSON比JavaScript语法更严格,需要引用的对象键:

##foo={"top":100,"left":100}|#bar={"top":100,"right":100}

如果您在topleftright周围加上引号,那么您可以直接在JSON字符串上使用JSON.parse$.parseJSON。< / p>