2012-10-22 33 views
0

我有一個使用JavaScriptSerializer轉換爲JSON的子項的對象。我使用MVC和在視圖中使用JavaScriptSerializer像這樣:從JSON序列化的對象中移除子項

@Html.Raw(serializer.Serialize(Model.Designs) 

我的「設計」對象有兒女「DesignDeliveries」但我需要,所以我一直在使用投影試圖從JSON字符串中刪除這些但不能得到我需要

的格式,所以我的設計對象如下:

[{ 
"BookingDesignId": "e90e9500-0a6a-4d1b-a82a-fa7ca2d7c034", 
"DesignName": "Design 600", 
"Quantity": 100, 
"DesignDeliveries": [{ 
    "BookingId": "3706a896-3b8f-454f-acc8-6540441a3e4a", 
    "Quantity": 50, 
    "BookingDesignId": "e90e9500-0a6a-4d1b-a82a-fa7ca2d7c034", 
    "DepotId": "9" 
}, 
{ 
    "BookingId": "3706a896-3b8f-454f-acc8-6540441a3e4a", 
    "Quantity": 50, 
    "BookingDesignId": "e90e9500-0a6a-4d1b-a82a-fa7ca2d7c034", 
    "DepotId": "18" 
}] 
}]; 

不過,我需要:

[{ 
"BookingDesignId": "e90e9500-0a6a-4d1b-a82a-fa7ca2d7c034", 
"DesignName": "Design 600", 
"Quantity": 100, 
"DesignDeliveries": []; 

有誰知道如何做到這一點?

在此先感謝

+0

它是否必須是空的,或者你可以根本不序列化它? – Nathan

+0

嗨納丹...謝謝你的回覆..它需要是空的。我正在使用它來創建一個淘汰賽js viewmodel。下面的狂人的答案是有效的。我嘗試過使用Clear(),但是投影到一個匿名類型,但沒有奏效。 – ledragon

回答

1

克隆Model.Designs,清除DesignDeliveries您的收藏,再克隆序列化設計。

+0

感謝狂人......這是一種享受......只是要弄清楚現在最好的克隆方式! – ledragon

+0

這是克隆對象的好辦法http://stackoverflow.com/questions/129389/how-do-you-do-a-deep-copy-an-object-in-net-c-specifically – Madman