2018.5.8
2020.1.7

JSONのシリアライズで特定のプロパティを除外する

ASP.NET coreのModelデータをJSONとして出力する際に、特定のプロパティを除外する方法です。

目次

  • コード
  • 実行結果
  • 参考リンク

コード

JSONとして出力したくないプロパティに属性「JsonIgnore」を付加することで、目的の動作が可能となっています。

モデル


using Newtonsoft.Json;

public class Sample
{
    public int Id { get; set; }
    public string Name { get; set; }

    [JsonIgnore]
    public int Score { get; set; }
}

コントローラー


public class SampleController : Controller
{
    [HttpGet]
    public Sample GetSampleData()
    {
        var data = new Sample { Id = 1, Name = "a1", Score = 50 };
        return data;
    }
}

実行結果

上記コントローラーのGetSampleData()をリクエストで呼び出すと、クライアント側に送信されるデータは以下のようになります。

{
    id: 1
    name: "a1"
}

上記はASP.NET coreの場合ですが、coreじゃない方は、属性に「System.Web.Script.Serialization.ScriptIgnore」を追加するみたいです。

参考リンク

ASP.NET Core】関連記事