2010-04-01 42 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