2009-05-01 58 views
1

重複:Serializing to JSON in jQueryjQuery中的通用json串行器/解串器?

似乎有內置的jQuery一個JSON串行器/解串器,因爲它能夠實現像.getJSON事情。是否可以使用內置的jQuery的JSON處理器本身是一個通用處理器JSON(即作出jQuery.something()調用序列化/反序列化我自己的數據),消除對單獨的JSON庫的需要?

更新:在上面提到的問題的答覆說有jQuery中沒有JSON序列碼。如何JSON反序列化? .getJSON是如何實現的,爲什麼不將反序列化功能暴露給一般用途?

UPDATE2:我已經使用來自json.org json2,我想擺脫它,因爲所有我做的是簡單的反序列化。聽起來像jquery真的只是做eval?我有印象that wasn't so good for security

eval函數非常快。 但是,它可以編譯和執行 任何JavaScript程序,所以可以 有安全問題

回答

2

jQuery的不只是使用eval()現在。 jQuery 1.4將支持支持瀏覽器原生JSON反序列化的瀏覽器。如果你願意,你可以利用這個優勢,通過using jQuery's dataFilter callback to avoid the eval() when possible(把它放在$ .ajaxSetup中來自動影響所有$ .ajax(),$ .post(),$ .getJSON()調用)。

1

我相信反序列化傳入的JSON數據的jQuery只是eval()函數的它。我不知道任何內置的序列化。

2

我剛開始使用jQuery,我覺得這是最簡單的只是從JSON.org在下降的JSON2.js庫,然後擴展jQuery來使用它。

3

聽起來像你需要的是在http://www.json.org/js.html提供的序列化/反序列化實現,它提供了JSON.parse()和JSON.stringify(),使得序列化和驗證數據變得容易。

如果你想簡單的JSON文本轉換成一個對象,然後使用eval()函數。