1. ホーム
  2. c#

[解決済み] json.netを使用して、クラス内のプロパティがnullの場合、それを無視する方法

2022-03-16 15:54:44

質問

を使っています。 Json.NET を使用して、クラスをJSONにシリアライズします。

こんな感じでクラスがあるんです。

class Test1
{
    [JsonProperty("id")]
    public string ID { get; set; }
    [JsonProperty("label")]
    public string Label { get; set; }
    [JsonProperty("url")]
    public string URL { get; set; }
    [JsonProperty("item")]
    public List<Test2> Test2List { get; set; }
}

を追加したいのですが JsonIgnore() 属性に Test2List プロパティを使用する場合のみ Test2Listnull . もしそれがnullでないなら、私はそれを私のjsonに含めたいのです。

どのように解決するのですか?

James Newton Kingの言によれば、JavaScriptConvertではなく自分でシリアライザを作成する場合は、JavaScriptConvertを使用する前にシリアライザを作成する必要があるそうです。 NullValueHandling プロパティ を無視するように設定することができます。

以下はサンプルです。

JsonSerializer _jsonWriter = new JsonSerializer {
                                 NullValueHandling = NullValueHandling.Ignore
                             };


または、@amit が提案したように

JsonConvert.SerializeObject(myObject, 
                            Newtonsoft.Json.Formatting.None, 
                            new JsonSerializerSettings { 
                                NullValueHandling = NullValueHandling.Ignore
                            });