2013-06-22 47 views
-4

如何序列化部分取決於包含對象的某些條件的集合? 我已經看過JsonConverterContractResolver,但還是無法弄清楚。Json.NET序列化部分集合

我在談論一般情況。

例如:IList,int numbers =>只有偶數 我只想在序列化過程中忽略一些項目。

+1

你的收藏包含什麼?你的意見是什麼?你期望輸出什麼?這些條件是什麼,它們如何影響產出? – EZI

+0

真的很重要嗎?我在談論一般情況。 例如:IList,int數字,只有偶數 我只想在序列化過程中忽略一些項目。 –

+0

答案數顯示它確實很重要。 – EZI

回答

0

我做了一個樣本,我只序列化偶數。

Container contrainer = new Container(); 
contrainer.Full = Enumerable.Range(1, 20).ToArray(); 

JavaScriptSerializer serializer = new JavaScriptSerializer(); 
String str = serializer.Serialize(contrainer); 

public class Container 
{ 
    // don't serialize 
    [ScriptIgnore] 
    public Int32[] Full { get; set; } 

    public Int32[] Partial 
    { 
     //select what you want to serialize 
     get { return this.Full.Where(i => (i % 2) == 0).ToArray(); } 
     set { this.Full = value; } 
    } 
} 

結果

{"Partial":[2,4,6,8,10,12,14,16,18,20]} 

我希望它能幫助。

+0

嘿,我已經想過那種伎倆。但這不是一個公平的舉動,它增加了一個新的集合,不告訴序列化者如何處理舊的。 –