Block Cascade Json Serealize?
I have this Class:
public class User
{
public string id{ get; set; }
public string name{ get; set; }
public string password { get; set; }
public string email { get; set; }
public bool is_broker { get; set; }
public string branch_id { get; set; }
public string created_at{get; set;}
public string updated_at{get; set;}
public UserGroup UserGroup {get;set;}
public UserAddress UserAddress { get; set; }
public List<UserContact> UserContact {get; set;}
开发者_StackOverflow中文版public User()
{
UserGroup = new UserGroup();
UserAddress = new UserAddress();
UserContact = new List<UserContact>();
}
}
I like to Serealize Only properties , how i block serealization of UserGroup, UserAdress, asn UserContact???
This is my Serealization function:
public static string Serealize<T>(T obj)
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, obj);
return Encoding.UTF8.GetString(ms.ToArray(), 0,(int)ms.Length);
}
Since you are using the DataContractJsonSerializer
you will want to do something like this:
[DataContract]
public class User
{
[DataMember] public string id{ get; set; }
[DataMember] public string name{ get; set; }
[DataMember] public string password { get; set; }
[DataMember] public string email { get; set; }
[DataMember] public bool is_broker { get; set; }
[DataMember] public string branch_id { get; set; }
[DataMember] public string created_at{get; set;}
[DataMember] public string updated_at{get; set;}
public UserGroup UserGroup {get;set;}
public UserAddress UserAddress { get; set; }
public List<UserContact> UserContact {get; set;}
public User()
{
UserGroup = new UserGroup();
UserAddress = new UserAddress();
UserContact = new List<UserContact>();
}
}
Depending on how have implemented the serialization, you want to add the NonSerializedAttribute to the fields you don't want serialized:
http://msdn.microsoft.com/en-us/library/system.nonserializedattribute(VS.71).aspx
so for example:
[NonSerialized()]
public UserGroup UserGroup {get;set;}
Here is another link about the JSON serialization and how it is implemented:
http://forums.asp.net/p/1400518/3039466.aspx
精彩评论