JavaScriptSerializer。如何忽视财产

时间:2011-05-13 19:30:53

标签: c# javascriptserializer

我知道ScriptIgnoreAttribute

但是,如果我想根据标准忽略属性,该怎么办? 例如,如果序列化的nullable属性为null并且不包含任何值,那么如何忽略它?

3 个答案:

答案 0 :(得分:26)

https://msdn.microsoft.com/tr-tr/library/system.web.script.serialization.scriptignoreattribute(v=vs.110).aspx

使用 [ScriptIgnore]

using System;
using System.Web.Script.Serialization;

public class Group
{
    // The JavaScriptSerializer ignores this field.
    [ScriptIgnore]
    public string Comment;

    // The JavaScriptSerializer serializes this field.
    public string GroupName;
}

答案 1 :(得分:7)

我最好的答案是制作你自己的JavaScriptConverter并根据你自己的条件解析财产。

public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
{
  //...
  if (!object.ReferenceEquals(dictionary["MyProperty"],null)){
    // My Code
  }
  //...
}

答案 2 :(得分:3)

我使用内部而不是公共属性,它对我有用