我们如何隐藏使用
JSON.NET库进行序列化的C#属性.假设我们有班级客户
public class Customer { public int CustId {get; set;} public string FirstName {get; set;} public string LastName {get; set;} public bool isLocked {get; set;} public Customer() {} } public class Test { Customer cust = new Customer(); cust.CustId = 101; cust.FirstName = "John" cust.LastName = "Murphy" string Json = JsonConvert.SerializeObject(cust); }
JSON
{
“CustId”:101,
“FirstName”:”John”,
“LastName”:”Murphy”,
“isLocked”:false
}
此对象转换为json,但我没有指定isLocked属性.由于库将序列化整个类,有没有办法在json序列化过程中忽略属性或者我们可以在属性上添加任何属性.
编辑:
另外,如果我们在数组中创建两个Customer类实例.如果我们没有指定第二个实例上的锁定属性,我们可以将属性隐藏为第二个对象.
JSON
{ “Customer”:[
{ “CustId”:101,
“isLocked”:false},
{ “CustId”:102,
“FirstName”:”Sara”,
“LastName”:”connie”}]
}
谢谢
使用JSON.Net属性:
public class Customer { public int CustId {get; set;} public string FirstName {get; set;} public string LastName {get; set;} [JsonIgnore] public bool isLocked {get; set;} public Customer() {} }
有关更多信息:http://james.newtonking.com/json/help/index.html?topic=html/SerializationAttributes.htm