How to exclude some members from being serialized to Json?

前端 未结 3 741
予麋鹿
予麋鹿 2021-01-12 07:45

I have an object that I want to serialize to Json format I\'m using:

    public string ToJson()
    {
        JavaScriptSerializer jsonSerializer = new JavaS         


        
相关标签:
3条回答
  • 2021-01-12 07:50

    Use the ScriptIgnoreAttribute.

    0 讨论(0)
  • 2021-01-12 07:57

    The possible way is to declare those fields as private or internal.

    The alternative solution is to use DataContractJsonSerializer class. In this case you add DataContract attribute to your class. You can control the members you want to serialize with DataMember attribute - all members marked with it are serialized, and the others are not.

    You should rewrite your ToJson method as follows:

        public string ToJson()
        {
            DataContractJsonSerializer jsonSerializer = 
                  new DataContractJsonSerializer(typeof(<your class name>));
            MemoryStream ms = new MemoryStream();
            jsonSerializer.WriteObject(ms, this);
            string json = Encoding.Default.GetString(ms.ToArray());
            ms.Dispose();
            return json;
        }
    
    0 讨论(0)
  • 2021-01-12 08:01

    Check out the JavaScriptConverter class. You can register converters to customize the serialization/deserialization process for specific object types. You can then include the properties that you want, without making any changes to the original class.

    0 讨论(0)
提交回复
热议问题