2010-04-01 17 views
1
var gallery = new TGallery([[{"image":{"updated_at":"2010-03-20T00:00:00Z","title":"dfgdfg","spam_reports":0,"by_profile_id":1,"comment_count":0,"id":1,"description":"htt","on_type":"profile","adult_reports":0,"on_id":1,"created_at":"2010-03-20T00:00:00Z"}]]); 

然后在TGallery类中,我想将json对象转换为js对象。 感谢JQuery:json的对象?

如果没有可能是一个插件... :)

+0

Teehee。有人忘了JSON *是* javascript。 – spender 2010-04-01 00:10:15

回答

1

你贴的不是很有效(缺少}),但是如果你可以改变一下格式,无需转换,这样的事情:补充:

var gallery = [{"image":{"updated_at":"2010-03-20T00:00:00Z","title":"dfgdfg","spam_reports":0,"by_profile_id":1,"comment_count":0,"id":1,"description":"htt","on_type":"profile","adult_reports":0,"on_id":1,"created_at":"2010-03-20T00:00:00Z"}}]; 

此处所做的更改关闭大括号,删除多余的[]包装和删除TGallery()呼叫。然后你可以循环/访问这样的图像:

$.each(gallery, function(i, o) { 
    alert(o.image.updated_at); 
});​ 
+0

感谢您的提示。我会在我的应用程序中使用;)非常好 – 2010-04-02 11:21:41

0

已经是 “JS对象”。只要尝试访问TGallery中的参数,就会看到。

+0

谢谢;)heheh很愚蠢我是 – 2010-04-02 11:20:21

0

您已经在该示例中传入JavaScript对象。如果您使用的是JSON字符串,则可以执行以下操作:

如果您使用的是jQuery> = 1.4.1,则可以使用其内置的parseJSON方法将您的JSON字符串转换为对象。否则,你会想要使用library from JSON.org

+0

我敢肯定,有一个非常好的理由不去,但老eval有什么问题? – spender 2010-04-01 00:14:14

+0

@spender'eval'将执行字符串作为完全按照书面的代码。使用JSON解析器将验证该字符串是否符合JSON格式,该格式可以保护您的脚本免受各种安全隐患的影响,这些安全隐患已在Web上进行了全面记录。 – 2010-04-01 00:15:57

+0

如果“JSON”来自可信来源,eval()不会引入任何安全漏洞,但是我个人更喜欢将eval始终视为邪恶。 – 2010-04-01 00:21:34