在轉換JSON時,有時候會需要排除掉某些屬性,在Model中可以透過簡單的設定來達成
情況一、十個屬性,僅呈現兩個屬性時,使用[DataContract]+[DataMember]
情況二、十個屬性,僅排除一個屬性時,使用[JsonIgnore]
==========================================================
下列屬性我只想呈現 角色名稱、熱門程度
情況一、十個屬性,僅呈現兩個屬性時,使用[DataContract]+[DataMember]
using Newtonsoft.Json;
using System.Runtime.Serialization;//[DataContract]要import的
namespace league of legends
{
/// <summary>表示一位英雄明細</summary>
[DataContract] //轉換JSON時僅轉換[DataMember]
public class Hero
{
#region properties
/// <summary>資料主鍵</summary>
public int ID { get; set; }
/// <summary>角色名稱</summary>
[DataMember]
public string Name{ get; set; }
/// <summary>身高</summary>
public int CM { get; set; }
/// <summary>性別</summary>
public string Gender{ get; set; }
/// <summary>躺著的身高</summary>
public string SecretCM { get; set; }
/// <summary>熱門程度</summary>
[DataMember]
public string level{ get; set; }
#endregion
}
}
在Json輸出時,就只會呈現角色名稱和熱門程度。
==========================================================
如果換成情況二的寫法就會如下:
情況二、十個屬性,僅排除一個屬性時,使用[JsonIgnore]
using Newtonsoft.Json;
namespace league of legends
{
/// <summary>表示一位英雄明細</summary>
public class Hero
{
#region properties
/// <summary>資料主鍵</summary>
[JsonIgnore]
public int ID { get; set; }
/// <summary>角色名稱</summary>
public string Name{ get; set; }
/// <summary>身高</summary>
[JsonIgnore]
public int CM { get; set; }
/// <summary>性別</summary>
[JsonIgnore]
public string Gender{ get; set; }
/// <summary>躺著的身高</summary>
[JsonIgnore]
public string SecretCM { get; set; }
/// <summary>熱門程度</summary>
public string level{ get; set; }
#endregion
}
}
情況二的寫法,在Json輸出時,一樣只會呈現角色名稱和熱門程度。
==========================================================
那麼情況一,使用[Datamember]能不能再使用JsonIgnore?
可以,但是沒有意義。