2008-09-20 21 views

回答

1

我不認爲序列化方法是一個好主意。如果您打算運行代碼服務器端,您可以打開自己的攻擊。如果你想運行它的客戶端,你最好只使用本地方法,可能引用你要在序列化對象中使用的方法的名稱。

我相信儘管這"f = "+function() {}將產生你一個字符串版本,您可以EVAL:

var test = "f = " + function() { alert("Hello"); }; 
eval(test) 

有充分JSON處理,我會建議原型,這對序列化對象JSON偉大的方法。

+0

謝謝 - 我會檢查Prototype。 – 2008-09-21 00:32:38

4

嘗試脫離序列化JavaScript代碼。這就是一個痛苦的世界。如果代碼只能來自靜態文件,而不是來自數據庫,那麼調試將會更容易。相反,在收到它們並將適當的數據傳遞給適當的對象構造函數後,請執行JSON響應。

如果您絕對必須對它們進行序列化,則在函數上調用toString()將返回其源。

+0

當它是一個具有許多功能的對象時如何?任何方式一次序列化所有? – raphadko 2017-05-06 00:47:03

1

如果您使用WCF框架開發RESTful Web服務,那很容易實現。 只需使用DataContract,DataMember屬性創建具有所需集合的數據結構類。

[DataContract] 
public class Foo 
{ 
    [DataMember] 
    public string FooName {get;set;} 
    [DataMember] 
    public FooItem[] FooItems {get;set;} 
} 


[DataContract] 
public class FooItem 
{ 
    [DataMember] 
    public string Name {get;set;} 
}