2

問題定義:將ExpandoObject轉換爲Type,在客戶端或服務器端執行什麼更高效,更省時?

我得到了一個ExpandoObject,我需要轉換爲像「客戶」類型的類型,這個問題是不是實現這一目標,我想知道應該用我的方法是服務器端或客戶端javascript,我可以實現我想要的兩種方式,但哪種方法更有效且耗時更少?

服務器端方法:

public IEnumerable<T> Convert<T>(dynamic self) 
{ 
    List<T> model = new List<T>(); 
    var jsSerializer = new JavaScriptSerializer(); 
    foreach (var obj in self) 
    { 
     model.Add(jsSerializer.ConvertToType<T>(obj)); 
    } 
    return model.AsEnumerable(); 
} 

客戶端的方法:

var model = []; 
data.forEach(function (item) { 
    var property = []; 
    item.forEach(function (pair) { 
     property[pair.Key] = pair.Value; 
    }); 
    model.push(property); 
}); 

使用ORM:羅布科納的大規模

原始響應(不轉換):

[[{ 「密鑰」: 「ID」, 「值」:2},{ 「密鑰」: 「的customerID」,「值「:」Key「:」orderID「,」Value「:1},{」Key「:」address「,」Value「:」開羅NasrCity Ibrahim Nagy街25號「},{」Key「 :「deliveryDateTime」,「Value」:「/ Date(1381528800000)/」},{「Key」:「deliveryPersonnelID」,「Value」:1}],[{「Key」:「ID」,「Value」 3},{「Key」:「customerID」,「Value」:2},{「Key」:「orderID」,「Value」:2},{「Key」:「address」,「Value」 Ibrahim Nagy Street,NasrCity,Cairo「},{」Key「:」deliveryDateTime「,」Value「:」/ Date(1386972000000)/「},{」Key「:」deliveryPersonnelID「,」Va lue「:2}],[{」Key「:」ID「,」Value「:4},{」Key「:」customerID「,」Value「:1},{」Key「:」orderID「價值「:{」Key「:」地址「,」價值「:」開羅NasrCity市阿巴斯街30號「},{」Key「:」deliveryDateTime「,」Value「:」/ Date(1387922400000) 「Key」:「deliveryPersonnelID」,「Value」:2}],[{「Key」:「ID」,「Value」:5},{「Key」:「customerID」,「Value」 :{「Key」:「orderID」,「Value」:4},{「Key」:「address」,「Value」:「開羅NasrCity哈桑瑪門街25號」},{「Key」 「deliveryDateTime」, 「值」: 「/日期(1388354400000)/」},{ 「密鑰」: 「deliveryPersonnelID」, 「值」:3}]]

+0

它不能像我這樣工作,因爲數據是通過AJAX調用檢索的,我必須處理動態因素,因爲我的ORM是'Massive'。 –

+0

看起來我正在跟自己說話,因爲那個問我的人刪除了他的評論,太好了。 –

+0

服務器端給你編譯tim – devshorts

回答

0

我決定做轉換客戶端,我不知道這對我來說是否合適,我的意思是讓客戶做一些工作,也沒什麼辛苦的工作,那麼爲什麼要浪費時間服務器端呢?

+0

如果遇到類似的情況,也可以在我的問題中隨意使用任何代碼:D。 –

相關問題