【问题标题】:Json.NET serialize collection partially [closed]Json.NET部分序列化集合[关闭]
【发布时间】:2013-06-19 17:31:42
【问题描述】:

如何根据包含对象的某些条件部分序列化 集合? 我已经看过JsonConverterContractResolver,但还是想不通。

我说的是一般情况。

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

【问题讨论】:

  • 您的收藏包含什么?你的输入是什么?你期望什么输出?这些条件是什么?它们如何影响输出?
  • 真的很重要吗?我说的是一般情况。例如:IList, int numbers, only even numbers 我只想在序列化过程中忽略一些项目。
  • 答案的数量表明它真的很重要。
  • 那真的很伤心

标签: c# serialization json.net


【解决方案1】:

我做了一个示例,其中我只对偶数进行序列化。

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]}

希望对你有帮助。

【讨论】:

  • 嘿嘿,这种套路我早就想好了。但这不是一个公平的举动,它添加了一个新集合,而不是告诉序列化程序如何处理旧集合。
猜你喜欢
  • 2019-01-29
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-10-28
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多